canalizando uma senha localizada em um arquivo para o comando ssh [duplicado]

1

Portanto, preciso fazer login como muitos usuários diferentes em um servidor usando ssh e estou cansado de copiar a senha dos arquivos, que contêm as senhas para os usuários, sempre. Eu não posso mudar isso para não usar senhas, não é meu, é para um jogo.

Eu tentei usar:

$ cat /path/to/myfile | ssh user@localhost

Recebo uma mensagem dizendo que o pseudo-terminal não será alocado porque stdin não é um terminal.

Não sei bem como isso deve funcionar.

    
por daniel 16.08.2015 / 13:20

1 resposta

8

chaves SSH

Em primeiro lugar, a melhor solução para você seria criar um novo par de chaves ssh e usar essa chave para acessar todos os seus servidores (ou alguns baseados nas preferências). Se você não sabe como, você pode encontrá-lo muitas vezes aqui no stackexchange, mas atalho:

ssh-keygen; ssh-copy-id your-host

Basicamente você deve definir a frase secreta para a sua chave, então você irá logar apenas uma vez com a senha.

passagem SSH

Mas se você realmente insistir em usar suas senhas de arquivos, pode fazê-lo simplesmente como descrito nos comentários:

sshpass -f /path/to/myfile ssh user@localhost

Mas observe que esse não é o método preferido de usar ssh com senhas armazenadas em texto simples.

Esperar

Você pode fazer a mesma coisa usando o script expect da seguinte forma:

#!/usr/local/bin/expect
spawn  ssh [email protected]
expect "password:"
send "your_password\n";
interact
    
por 16.08.2015 / 17:17