Retirar a senha de um arquivo enquanto estiver SSH em uma máquina [duplicada]

5

Eu quero o SSH em uma máquina remota, mas em vez de digitar a senha, quero redirecioná-la de outro arquivo.

Portanto, tenho um arquivo password.txt que armazena a senha. File.sh é o meu arquivo bash.

Em File.sh

#!/bin/bash
ssh -T [email protected]

Durante a execução do arquivo, fiz:

./File.sh < password.txt

Mas me pediram para digitar a senha de qualquer maneira.

Como obtenho a senha para entrada do arquivo?

    
por Tinkidinki 22.09.2016 / 09:40

3 respostas

16

O SSH com "senha em um arquivo" é comumente usado como autenticação de chave pública. Crie um par de chaves usando ssh-keygen , carregue a chave pública no outro host:

scp ./.ssh/id_rsa.pub [email protected]:~/

e coloque-o como ~/.ssh/authorized_keys :

ssh [email protected]
mkdir ~/.ssh
mv ~/id_rsa.pub ~/.ssh/authorized_keys

ou, se um arquivo authorized_keys já existir:

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

defina as permissões apropriadas (600 para o arquivo, 700 para o diretório):

chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

e inicie uma nova sessão ssh.

    
por 22.09.2016 / 09:59
6

Você pode usar sshpass para fazer isso:

sshpass -f password.txt ssh -T [email protected]
    
por 22.09.2016 / 10:01
2
#!/usr/bin/expect -f
spawn ssh shw@hostname
expect -exact "shw@hostname's password: "
send -- "PASSWORD\r"
expect "$ "
interact

A expectativa é uma ferramenta para automatizar o processo.

    
por 22.09.2016 / 09:59

Tags