É possível instalar sshpass para que você possa executar:
sshpass -p 'password' ssh 192.168.1.1
A situação:
$IP
$USER
$PASSWD
Existe uma maneira de dar $ PASSWD para o ssh? como
PASSWORD_VAR=$PASSWD ssh -l $USER $IP
lendo ssh (1) não me dá pistas. tal coisa existe no mundo da janela (por exemplo, Kitty), agora eu gostaria de fazer o mesmo no unix (suse ou unbuntu se for esse o caso).
Eu sei como configurar o par de chaves pública / privada, mas isso está fora do tópico.
É possível instalar sshpass para que você possa executar:
sshpass -p 'password' ssh 192.168.1.1
ssh
por padrão e por design não faz isso. Isso ocorre porque as senhas de texto simples incorporadas nos scripts são basicamente uma má ideia. Não menos importante, porque - se for especificado em uma única linha de comando, normalmente aparece na lista ps
que todo usuário pode ver.
Então, é deliberadamente difícil, encorajar hábitos melhores. pares de chaves pública-privada e ssh-agent
vão longe para remover a exigência.
Se você realmente precisa, então expect
pode fazer isso:
#!/usr/bin/expect -f
spawn /usr/bin/ssh -n username@hostname
expect "password:"
send "Password\n";
interact
(Ou sshpass
como o outro comentarista mencionou).