Armazenamento automático da chave do host do servidor no cache com plink

Armazenamento automático da chave do host do servidor no cache com plink

Tenho tentado emitir comandos usando o plink para recuperar informações do meu servidor externo. Observe que esses comandos plink são executados a partir de um binário que não espera nenhuma entrada do usuário. Existe um sinalizador que me permitirá substituir esta mensagem de erro e continuar com a saída do programa?

The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 **:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.
Store key in cache? (y/n)

Obrigado!

Responder1

Tente preceder seu script com:

echo y | plink -ssh root@REMOTE_IP_HERE "exit"

Isso canalizará o ypersonagem stdinaté plinkquando você obtiver oArmazenar chave no cache? (s/n)prompt, permitindo que todos plinkos comandos adicionais passem sem a necessidade de entrada do usuário. O exitcomando fechará a sessão SSH após ela ter sido estabelecida, permitindo a plinkexecução dos seguintes comandos.

Aqui está um exemplo de script que grava o horário Unix do servidor externo em um arquivo local:

echo y | plink -ssh root@REMOTE_IP_HERE "exit"
plink -ssh root@REMOTE_IP_HERE "date -t" > remote_time.tmp

Referência de pipeline:http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-4.html

Responder2

A resposta aceita é "aceitável", mas insegura. A melhor maneira seria especificar a chave do host para plink para evitar qualquerHomem no meioataque.

plink -hostkey aa:bb:cc... root@REMOTE_IP_HERE [...]

Responder3

PuTTYe plink.execompartilham o mesmo cache de 'chaves de servidor aceitáveis' no host em que estão instalados.

Então, se o seu cenário forinterativo(e daí sua frustração não ser ouvida quando você pressiona 'y' ou 'n'), uma solução alternativa é tentar primeiro uma conexão com o PuTTY.

Ao fazer isso:

  • Você abrirá PuTTYe fingirá iniciar uma sessão SSH interativa para o servidor
  • Você receberá uma caixa de diálogo do Windows mostrando a chave perguntando se deseja confiar nela
  • Você verificará a chave apresentada, para proteger os MITMs e pressionaráOK
  • Doravante, plink.exenão se preocupe em perguntar se você confia no servidor ou não - ele já sabe que você confia

Responder4

a auto_store_sshkeyopção existe emKlink, que faz parte doGatinha, ele poderá ignorar o prompt da chave de armazenamento.

klink -auto_store_sshkey -batch 192.211.158.256 -l user -pw password 

informação relacionada