Responda “sim” para ssh-copy-id pela primeira vez executado pelo script?

7

A primeira vez em que ssh-copy-id perguntará

# ssh-copy-id -i .ssh/id_dsa.pub [email protected]
The authenticity of host 'example.com (xxx.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is 39:fb:5e:70:30:33:2b:18:17:e9:4f:2f:91:b5:d2:21.
Are you sure you want to continue connecting (yes/no)? 

É possível fazer script disso, então o script simplesmente responderá sim?

    
por Sandra 30.08.2012 / 14:57

3 respostas

6

Se o seu ssh-copy-id não suportar a opção StrictHostKeyChecking, você pode escrever um script que:

  1. Execute ssh-keyscan no servidor de destino para obter a chave pública
  2. Anexar ao arquivo known_hosts
  3. Executar ssh-copy-id
por 30.08.2012 / 15:29
5

O SSH tem uma opção para adicionar automaticamente qualquer chave de host ao arquivo de hosts confiáveis:

ssh-copy-id -i .ssh/id_dsa.pub -o StrictHostKeyChecking=no [email protected]

Como alternativa, você pode fazer o seguinte:

echo "yes \n" | ssh-copy-id -i .ssh/id_dsa.pub [email protected]

Editar : como parece que essas soluções não funcionam com ssh-copy-id , você sempre pode criar um arquivo ~/.ssh/config com a seguinte opção:

StrictHostKeyChecking no

Isso deve funcionar com todas as conexões SSH, independentemente de elas serem invocadas por meio de um script ou não.

    
por 30.08.2012 / 15:15
0

Tente isto:

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] -y

ele não adiciona as chaves do host ao arquivo known_hosts, mas permite copiar (ou anexar) a chave pública para o authorized_keys que você deseja, se esse for o único propósito aqui.

    
por 15.09.2017 / 10:31