Como você deseja manter a verificação rigorosa da chave do host, eu gostaria que eles usassem arquivos known_hosts
diferentes. Para fazer isso, configure seu arquivo ~/.ssh/config
(ou o arquivo /etc/ssh/ssh_config
se você precisar disso para trabalhar em várias contas de usuários locais) assim:
Host myserver.osx
UserKnownHostsFile ~/.ssh/known_hosts.dual.osx
# default is ~/.ssh/known_hosts
Hostname $REALHOSTNAME
Host myserver.linux
UserKnownHostsFile ~/.ssh/known_hosts.dual.linux
Hostname $REALHOSTNAME
, substituindo $REALHOSTNAME
pelo nome do host ou pelo endereço IP, é claro. (Não importa qual você escolher, contanto que você escolha algo depois de "Hostname" que resolveria para o endereço IP, mas eu usaria o nome do host de preferência para um endereço IP, apenas em princípios gerais.)
Em seguida, ssh myserver.linux
e ssh myserver.osx
podem ter chaves de host diferentes, mas você ainda recebe a verificação. Se é o Linux que está em cima e você digita o OS X (ou vice-versa), você receberá o aviso (que eu acredito ser o efeito desejado).
Se eu tivesse esse problema, verificaria se havia algo completamente errado no arquivo principal known_hosts
que não corresponde a nenhum dos dois, de modo que, se você digitar $REALHOSTNAME
em vez de myserver.osx
, O aviso. :-) Eu faria isso colocando algo como
<ip-address-of-github.com> $REALHOSTNAME
no meu /etc/hosts
, em seguida, fazendo um ssh $REALHOSTNAME
e aceitando a nova chave, depois retirando essa entrada.