특정 호스트의 사용자에게 접근하려고 합니다. 나는 이것을 만났다요점필요한 각 도메인 계정에 대해 새 호스트 별칭을 만드는 단계를 제거하면 개선할 수 있습니다.
~/.ssh/config
Host github.com bitbucket.org bitbucket.com
User git
Host *
Protocol 2
UseKeychain yes
AddKeysToAgent yes
IdentitiesOnly yes
IdentityFile ~/.ssh/%r@%h_id_rsa
Hostname
안타깝게도 , 및 기타 속성과 달리 이를 Port
설정해 User git
도 값이 변경되지 않습니다.
$ ssh -Tv [email protected]
GitHub는 여전히 사용자 인증을 시도하고 있습니다 tarranjones
.git
debug1: Authenticating to github.com:22 as 'tarranjones'
해결책이 있나요?
답변1
명령줄에 지정된 사용자를 재정의할 수 없습니다. 기본값은 지정되지 않은 경우에만 제공됩니다(~/.ssh/config에 기본값이 제공되지 않으면 whoami
반환된 로그인 이름이 사용됩니다). 따라서 다음 명령을 사용하면 예상대로 작동합니다.ssh -Tv github.com
다음과 같이 실제 호스트 이름에 해당하는 값뿐만 아니라 실제로 Host를 임의의 값으로 설정할 수 있습니다.
Host gh
Hostname gh
User git
그러면 그것을 사용할 수 있습니다 ssh -Tv gh
.
답변2
Host *
다음을 삭제할 수도 있습니다.
IdentityFile %d/.ssh/%r@%h_id_rsa
Protocol 2
UseKeychain yes
AddKeysToAgent yes
IdentitiesOnly yes
Host github.com bitbucket.org bitbucket.com
User git
명령줄에서 사용자 이름을 지정하지 마십시오. 이렇게 하면 구성의 사용자 이름을 덮어쓰게 됩니다.
답변3
IdentityFile(~/.ssh/%r@%h_id_rsa)에서는 %r
인증 %h
에 사용되는 원격 사용자 및 원격 호스트와 항상 동일합니다.
이 예에서는 내가 변경했습니다.Hostname
Host github.com bitbucket.org bitbucket.com
IdentityFile ~/.ssh/%r@%h_id_rsa
Hostname newhostname.com
시험
$ ssh -Tv [email protected]
결과
debug1: Authenticating to github.com:22 as 'tarranjones'
debug1: Offering RSA public key: ~/.ssh/[email protected]_id_rsa
이 예에서는 변경했습니다.User
Host github.com bitbucket.org bitbucket.com
IdentityFile ~/.ssh/%r@%h_id_rsa
User git
시험
$ ssh -Tv [email protected]
이제 원격 호스트 이름은 변경되지 않지만 변경되면 해당 IdentityFile 이름이 잘못되었음을 의미합니다.
debug1: Authenticating to github.com:22 as 'git'
debug1: Offering RSA public key: ~/.ssh/[email protected]_id_rsa
percent_expand
원격 호스트 이름을 사용하면 %h
명명된 ID 파일에서는 작동하지 않습니다. 인증에 사용되는 원격 호스트 이름과 다르도록 하려면 항상 이를 하드코딩해야 합니다.
내가 생각할 수 있는 최선은 이것이다.
#Set Git User Domains
Host *-github.com *-bitbucket.org *-bitbucket.com
User git
#IdentityFile
Host tarranjones-*
IdentityFile ~/.ssh/tarranjones@%h_id_rsa
Host otherusername-*
IdentityFile ~/.ssh/otherusername@%h_id_rsa
#Hostnames
Host *-github.com
Hostname github.com
Host *-bitbucket.com *-bitbucket.org
Hostname bitbucket.org
Host *
Protocol 2
UseKeychain yes
AddKeysToAgent yes
IdentitiesOnly yes
용법
$ ssh -Tv tarranjones-github.com
결과
debug1: Authenticating to github.com:22 as 'git'
debug1: Offering RSA public key: ~/.ssh/[email protected]_id_rsa