Estou seguindo o procedimento de identidade dupla para bitbucket :
Tenho 2 contas bitbucket ccmcbeck
e chrisbeck
. O primeiro é pessoal, o segundo é trabalho.
No meu Mac local, eu tenho isso na minha ~/.ssh/config
Host *.work.com
User chris
ForwardAgent yes
IdentityFile ~/.ssh/work_dsa
Host bitbucket-personal
HostName bitbucket.org
User ccmcbeck
ForwardAgent no
IdentityFile ~/.ssh/bitbucket_ccmcbeck_rsa
Host bitbucket-work
HostName bitbucket.org
User chrisbeck
ForwardAgent no
IdentityFile ~/.ssh/bitbucket_chrisbeck_rsa
No meu Mac local eu ssh -T
tudo é bom, eu recebo:
$ ssh -T git@bitbucket-personal
logged in as ccmcbeck.
$ ssh -T git@bitbucket-work
logged in as chrisbeck.
No meu Mac local, a versão ssh é OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
Quando eu ssh foo.work.com
para minha caixa de Linux, eu recebo:
$ ssh-add -l
1024 ... /Users/chris/.ssh/work_dsa (DSA)
2048 ... /Users/chris/.ssh/bitbucket_ccmcbeck_rsa (RSA)
2048 ... /Users/chris/.ssh/bitbucket_chrisbeck_rsa (RSA)
Em foo.work.com
, Eu também tenho isso na minha ~/.ssh/config
Host bitbucket-personal
HostName bitbucket.org
User ccmcbeck
ForwardAgent no
IdentityFile ~/.ssh/bitbucket_ccmcbeck_rsa
Host bitbucket-work
HostName bitbucket.org
User chrisbeck
ForwardAgent no
IdentityFile ~/.ssh/bitbucket_chrisbeck_rsa
No entanto, foo.work.com
quando eu ssh -T
, faz referência ao usuário errado para git@bitbucket-work
$ ssh -T git@bitbucket-personal
logged in as ccmcbeck.
$ ssh -T git@bitbucket-work
logged in as ccmcbeck.
Em foo.work.com
, a versão ssh é OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
Por que minha configuração está causando foo.work.com
referenciar o usuário errado?
ssh-add -d
minhabitbucket-personal
identidade, entãofoo.work.com
usa o corretoUser
OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
foo.work.com
usa o primeiro relatado porssh-add -l
.Respostas:
A explicação mais provável parece-me que o agente ssh está usando qualquer chave que tenha carregado a qualquer momento. Você pode soltar esse comportamento usando o
IdentitiesOnly
diretiva em seu arquivo de configuração, como segue:De
ssh man page
:EDITAR:
Em seu post há essas linhas, até o final:
Eles mostram claramente que essa chave não foi aceita. É por isso que você sempre loga como ccmcbeck: essa chave funciona, e sem
IdentitiesOnly yes
, o cliente tentou outras chaves até encontrar uma que funcionasse. Introduzindo essa restrição, pelo menos esclarecemos a natureza do problema.Como no seu Mac você não parece ter esse problema, ele deve residir no cliente Linux e, em particular, na chave privada que você está tentando usar. A melhor coisa é gerar um novo, local para o Linux, e colocar seu
.pub
contraparte entre osauthorized_keys
. Espero que isto ajude.EDIT2:
... ou você pode seguir esta resposta do superusuário para selecionar a chave privada que você deseja usar especificando sua contraparte pública do agente encaminhado. A resposta ainda requer o uso do
IdentitiesOnly yes
opção.fonte
ssh -T
para alias.ccmcbeck
echrisbeck
trabalhar se eles são o primeiro emssh-add -l
semIdentitiesOnly yes
. ComIdentitiesOnly yes
emwork.foo.com
, ssh parece procurar apenas por chaves locais, não pelas chaves passadas através do agente ssh no meu Mac.work.foo.com
e referência que no~/.ssh/config
. Se você atualizar sua resposta, eu aceitarei