SSH 구성 : 기본 사용자 이름 재정의


271

ssh내 사용자 이름이 무엇인지 알 수 있도록 구성 할 수 있습니까?

기본적으로 현재 사용자 이름을 사용하는데, 제 경우에는 올바르지 않습니다.

대출자 랩톱에 있는데 내 사용자 이름은입니다 loaner.하지만 ssh내 사용자 이름은 buck입니다.

보너스 포인트 : 집에있는 내 사용자 이름은 bgolemon입니다. 호스트별로 사용자 이름을 구성 할 수 있다면 더 좋습니다.


3
스택 오버플로는 프로그래밍 및 개발 질문을위한 사이트입니다. 이 질문은 프로그래밍이나 개발에 관한 것이 아니기 때문에 주제가 아닌 것 같습니다. 참조 내가 여기에 대해 요청할 수 있습니다 어떤 주제 도움말 센터에서. 아마도 Super User 또는 Unix & Linux Stack Exchange 가 더 좋은 곳일 것입니다. 또한 Dev Ops에 대한 질문을 어디에 게시합니까?를
jww

3
이것은 좋은 질문입니다!
Nicolas S.Xu

여기에 허용되는 답변은 수퍼 유저보다 품질이 좋습니다. 전역 (기본) 사용자 지시문 사용 및 주석 추가 포함 지시문 우선 순위를 명확하게 함
Rondo

답변:


449

configinside 라는 파일을 만듭니다 ~/.ssh. 파일 안에 다음을 추가 할 수 있습니다.

Host *
    User buck

또는 추가

Host example
    HostName example.net
    User buck

두 번째 예는 사용자 이름을 설정하며 호스트 이름에 따라 다르지만 첫 번째 예는 사용자 이름 만 설정합니다. 그리고 두 번째 것을 사용할 때는 사용할 필요가 없습니다 ssh example.net. ssh example충분할 것입니다.


134
아마도 다음과 같이 지적 할 가치가 있습니다 man ssh_config. Since the first obtained value for each parameter is used, more host-specific declarations should be given near the beginning of the file, and general defaults at the end.그래서 Host *섹션이 끝날 것입니다.
quodlibetor

9
구성 파일은 위에서 아래로 처리되며 각 필드 (사용자, 호스트 이름 ...)를 채우고 여러 호스트 지시문이 일치하면 반복되는 필드를 건너 뜁니다 . 당신이 정의하는 경우 Host *, User jdoe상단에, 그리고 정의 Host example, HostName abc.example.com, User root, 시도하면 ssh example사용자가 입력 한 경우와 동일합니다 ssh jdoe@abc.example.com. ssh를 기본값을 정의하기 위해 (예. User root) Host *지침의 요구가되게합니다 하단에있는 설정 파일의.
mr.b

17
또한 .ssh / config에서 chmod 600을 잊지 마십시오
Sven

서버가 액세스 할 수있는 호스트 이름이 여러 개인 경우 (또는 여러 서버에 대해 동일한 기본 사용자 이름을 원할 경우) 첫 번째 줄을 변경하고 그 줄을 Host server1.local example.net *.example.org제거해야 HostName합니다.
Lèse majesté

44

빌린 컴퓨터 나 공유 컴퓨터와 같이 몇 번만 ssh 하려면 다음을 시도하십시오.

ssh buck@hostname

또는

ssh -l buck hostname

1
고마워,하지만 나는 이미 이것에 익숙하다. 항상 buck @ host 인 경우 buck @ host를 지정하는 것이 중복 된 것 같습니다 . 구성 파일에서이 정보를 나타내는 방법을 찾으려고합니다.
bukzor

1
별명 sshhostname = 'ssh buck @ hostname'과 같은 간단한 것을 고려 했습니까?
gpojd

네, 있어요. Learath2의 대답은 내가 찾던 것입니다. 이것을 내 도트 파일 저장소로 체크인하고 다시 걱정할 필요가 없습니다.
bukzor

각 클라이언트 환경에서 사용자 이름이 다른 다른 클라이언트의 컴퓨터에 연결하기 때문에 별칭 루트를 사용했습니다. 다른 접근 방식은 각 클라이언트에 대해 ssh 및 관련 설정을 설정하기 위해 다른 로컬 셸 환경을 갖는 것입니다. 또는 클라이언트 당 VM.
Nick Spacek 2016 년

6

man ssh_config 말한다

사용자

로그인 할 사용자를 지정합니다. 다른 컴퓨터에서 다른 사용자 이름을 사용할 때 유용 할 수 있습니다. 이것은 명령 행에 사용자 이름을 제공해야한다는 것을 기억하지 않아도됩니다.


1
이 경우 "ID"는 일반적인 "password"사용법과 동일합니다. 이것은 당신을 인증하는 데이터이지만, 도움은 인증을 시도하는 사람을 지정하지 않는 것처럼 .
bukzor

죄송합니다. 거기에도 사용자 설정이 있습니다.
nes1983

0

바로 가기를 사용할 수 있습니다. 홈 디렉토리에 .bashrc 파일을 작성하십시오. 거기에 다음을 추가 할 수 있습니다.

alias sshb="ssh buck@host"

터미널에서 별칭을 사용할 수있게하려면 터미널을 닫았다가 열거 나 실행하십시오.

source ~/.bashrc

그런 다음 다음을 입력하여 연결할 수 있습니다.

sshb

1
이것은 하나의 특정 호스트에 유용하지만 1 조 개의 다른 서버에 계속 연결하면 다소 쓸모가 없습니다. 오히려 설정 .ssh/config적절한 설정. 나는 *와일드 케어를 찾고왔다 (그리고 그것이 바닥에 있어야한다는 것을 배웠다).
mazunki

0

ssh구성 파일 을 인터페이스하는 Ruby gem이 있습니다 sshez.

당신이해야 할 일은 sshez <alias> username@example.com -p <port-number>다음을 사용하여 연결할 수 있습니다 ssh <alias>. 를 사용하여 별칭을 나열하고을 사용하여 sshez list쉽게 별칭을 제거 할 수 있으므로 유용합니다 sshez remove alias.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.