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

21

Eu 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 permita substituir essa 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!

Tad Oh
fonte
A verdadeira questão é que o git não fornece informações apropriadas para plink ou vice-versa e não aceita corretamente. Se você iniciar git clone, por exemplo, "git bash", a entrada (S / n) entrará no prompt do bash, e o bash geralmente responde com bash: y: command not found.
andrybak
Você pode usar o klink do projeto kitty . Este é o garfo da massa. Aqui está a chave: -auto-store-sshkey.
paxlo 28/02

Respostas:

20

Tente anexar seu script com:

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

Isso direcionará o ycaractere stdinpara plinkquando você conseguir a chave da loja no cache? (s / n) , permitindo que todos os outros plinkcomandos passem sem a necessidade de entrada do usuário. O exitcomando fechará a sessão SSH após ter sido estabelecida, permitindo a plinkexecução dos seguintes comandos.

Aqui está um exemplo de script que grava o horário do 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 Pipelining : http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-4.html

Daniel Li
fonte
-1

talvez ajude:

plink -auto_store_sshkey -batch 192.211.158.256 -l user -pw password command
Falcluft
fonte
1
-auto_store_sshkey é uma "opção desconhecido" para plink versão 0.63
Nathan
Também não
sei
... e desconhecido até 0,70
Gerrat 14/03