Passe sua senha para sua chave SSH por meio de um script

3

Estou escrevendo um script que me permitirá recuperar um arquivo de todos os meus servidores de uma só vez. Eu tenho chaves SSH no local para entrar em meus servidores. Minha chave SSH, no entanto, requer uma senha.

O script que estou escrevendo não será automatizado, ele só será executado manualmente. Então, meu script solicita ao usuário a senha da chave SSH.

Como posso enviar a senha para a chave SSH à medida que ela se conecta a cada servidor. Eu estou tentando evitar ter que digitar minha senha para cada servidor.

Eu sei que poderia usar 'esperar', mas espero que haja uma maneira simples de fazer isso. Talvez alguma variável de ambiente?

Obrigado.

    
por mhost 26.01.2011 / 19:56

5 respostas

15

Por que não usar ssh-agent para isso?
Veja a man page para detalhes adicionais. :)

    
por 26.01.2011 / 20:03
1

Eu usaria uma chave SSH que não tenha uma chave de acesso. Pode ser menos seguro, mas qualquer método que permita uso autônomo terá a mesma falha.

    
por 26.01.2011 / 21:09
0

A expectativa é a solução que vem à mente primeiro ...

Verifique este exemplo de script , pois ele está próximo ao que você está procurando.

    
por 26.01.2011 / 19:59
0

Aqui estão meus 2 centavos!

  • Eu tenho uma unidade USB que está sempre comigo (no meu chaveiro físico).
  • Eu faço uma segunda partição de 5 MB insignificantes. Esta partição é uma partição ext4 criptografada.
  • eu armazeno minha chave privada (sem chave de acesso) nessa partição criptografada.
  • No meu computador eu armazeno a senha para descriptografar essa partição no gerenciador de arquivos (eu uso dolphin), então se eu conectar a unidade USB eu posso montar a partição criptografada com dois cliques, e se eu ligar a unidade USB em outro computador eu posso montá-lo digitando a senha.
  • Novamente no meu computador eu tenho links simbólicos minhas chaves privadas são geralmente (~ / .ssh / id_rsa) para onde eles estão quando montado com a unidade USB. Então, uma vez montado, posso fazer um ssh usual sem senha.
  • Se eu estiver em outro computador, posso dizer ao ssh onde minha chave está com o sinalizador -i

Dessa forma, posso:

  • Faça login confortavelmente no meu computador diário
  • Faça login com uma única senha em qualquer máquina linux
  • Tenho minhas chaves privadas sempre seguras comigo e em um sistema de arquivos criptografado
por 07.03.2016 / 17:28
0

A solução mais fácil é instalar o pacote sshpass e usá-lo como: sshpass -p password ssh -i keyfile.pem user@server

    
por 24.03.2016 / 19:51