como evitar o ssh pedindo permissão?

48

Estamos tentando acelerar a instalação dos nós oracle para a instalação do RAC. isso requer que o ssh seja instalado e configurado para que não solicite uma senha.

O problema é: Na primeira utilização, somos solicitados a

RSA key fingerprint is 96:a9:23:5c:cc:d1:0a:d4:70:22:93:e9:9e:1e:74:2f.
Are you sure you want to continue connecting (yes/no)? yes

Existe uma maneira de evitar isso ou estamos condenados a nos conectar pelo menos uma vez em todos os servidores manualmente?

    
por Nicolas de Fontenay 02.03.2012 / 20:15

6 respostas

73

Defina StrictHostKeyChecking no no seu arquivo / etc / ssh / ssh_config, onde será uma opção global usada por todos os usuários no servidor. Ou defina-o no arquivo ~/.ssh/config , onde será o padrão apenas para o usuário atual. Ou você pode usá-lo na linha de comando:

ssh -o StrictHostKeyChecking=no -l $user $host

Veja uma explicação de como isso funciona em man ssh_config :

 StrictHostKeyChecking
         If this flag is set to “yes”, ssh will never automatically add
         host keys to the $HOME/.ssh/known_hosts file, and refuses to
         connect to hosts whose host key has changed.  This provides max-
         imum protection against trojan horse attacks, however, can be
         annoying when the /etc/ssh/ssh_known_hosts file is poorly main-
         tained, or connections to new hosts are frequently made.  This
         option forces the user to manually add all new hosts.  If this
         flag is set to “no”, ssh will automatically add new host keys to
         the user known hosts files.  If this flag is set to “ask”, new
         host keys will be added to the user known host files only after
         the user has confirmed that is what they really want to do, and
         ssh will refuse to connect to hosts whose host key has changed.
         The host keys of known hosts will be verified automatically in
         all cases.  The argument must be “yes”, “no” or “ask”.  The
         default is “ask”.
    
por 02.03.2012 / 20:28
19

ssh-keyscan - Reunir chaves públicas ssh

Se você já conhece a lista de hosts aos quais se conectará, pode simplesmente enviar:

ssh-keyscan host1 host2 host3 host4

Você pode dar a opção -H para fazer com que o hash resulte em resultados como padrões ssh agora

Além disso, você pode fornecer -t keytype onde tipo de chave é dsa , rsa ou ecdsa se você tiver uma preferência quanto ao tipo de chave a ser capturado em vez do padrão.

Depois de executar ssh-keyscan , ele terá pré-preenchido seu arquivo de hosts conhecidos e você não terá ssh pedindo permissão para adicionar uma nova chave.

    
por 09.10.2013 / 16:10
12

Você pode adicionar a impressão digital a cada known_hosts do servidor. Para um único usuário:

cat ~/.ssh/known_hosts
echo "$SERVER,$PORT ssh-rsa $SERVER_KEY_FINGERPRINT" >> ~/.ssh/known_hosts
    
por 02.03.2012 / 20:30
9

Ignorar host

Ignore o HostKeyChecking. Para isso eu uso, por exemplo:

ssh -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null [email protected]

Adicionar host

Adicione a impressão digital do host / servidor a .ssh/known_hosts antes de sua primeira conexão. Essa é a maneira mais segura.

    
por 02.03.2012 / 20:27
2

Execute o seguinte trecho antes de tentar.

mkdir -p ~/.ssh     
echo "Host *" > ~/.ssh/config     
echo " StrictHostKeyChecking no" >> ~/.ssh/config

ps: Estritamente não para servidores de produção, cuidado com o ManInMiddle

    
por 25.04.2018 / 14:26
1

Execute o seguinte trecho antes de tentar.

mkdir -p ~/.ssh  &&  echo "Host *" > ~/.ssh/config && echo " StrictHostKeyChecking no" >> ~/.ssh/config

ps: Estritamente não para servidores de produção, cuidado com o ManInMiddle

    
por 25.04.2018 / 14:30