Como adicionar nome de host a known_hosts para ser usado em todo o sistema

1

Até onde eu sei, a opção ssh padrão StrictHostKeyChecking está definida como ask , então a primeira conexão ssh parece:

$ ssh host.example.com
The authenticity of host 'host.example.com (1.2.3.4)' can't be established.
RSA key fingerprint is 52:9b:0a:f1:e4:51:1b:96:8c:b7:96:7c:d3:d2:7d:9f.
Are you sure you want to continue connecting (yes/no)?
  • Gostaria de adicionar automaticamente a chave do host pela primeira vez, supondo o possível problema de segurança.
  • Eu gostaria que a chave do host fosse usada por qualquer usuário local automaticamente (por exemplo, sem quaisquer opções adicionais da linha de comandos ssh ).
por Atento 11.03.2013 / 10:32

2 respostas

0

Eu li man ssh e man ssh_config e descobri a solução para isso:

#!/bin/bash

SSH_KNOWN_HOSTS=/etc/ssh/ssh_known_hosts
[ -e $SSH_KNOWN_HOSTS ] || touch $SSH_KNOWN_HOSTS
for host in \
    host1.example.com \
    host2.example.com \
; do
    ssh-keygen -R $host -f $SSH_KNOWN_HOSTS
    ssh -q -o StrictHostKeyChecking=no -o BatchMode=yes -o UserKnownHostsFile=$SSH_KNOWN_HOSTS $host echo '' || true
done
chmod a+r $SSH_KNOWN_HOSTS

Funciona, mas parece hacky. Você conhece uma maneira mais curta de fazer isso?

    
por 11.03.2013 / 10:32
0

Acho que o keyscan é mais limpo:

/usr/bin/ssh-keyscan $host >> $SSH_KNOWN_HOSTS

Se você precisar remover uma entrada obsoleta primeiro:

/usr/bin/ssh-keygen -R $host -f $SSH_KNOWN_HOSTS

Então você não precisa sofrer os avisos novamente.

    
por 10.11.2016 / 14:05