fornecendo senha para ssh [duplicate]

2

A situação:

  • Eu tenho um IP: 192.168.1.1 $IP
  • nome de usuário: root (ou qualquer outro) $USER
  • e um passwd: foo $PASSWD

Existe uma maneira de dar $ PASSWD para o ssh? como

 PASSWORD_VAR=$PASSWD ssh -l $USER $IP
  • o usuário pode ver a senha,
  • o usuário deve "acessar" a sessão de shell interativa normal.
  • O pacote do somme pode ser instalado no Linux do ambiente de trabalho, se necessário.

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.

    
por Archemar 25.02.2015 / 09:46

2 respostas

1

É possível instalar sshpass para que você possa executar:

sshpass -p 'password' ssh 192.168.1.1
    
por 25.02.2015 / 10:21
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).

    
por 25.02.2015 / 11:14

Tags