Pegando a senha de um arquivo enquanto faz o SSH em uma máquina

Pegando a senha de um arquivo enquanto faz o SSH em uma máquina

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

Então eu tenho um arquivo password.txtque armazena a senha. File.shé meu arquivo bash.

EmFile.sh

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

Ao executar o arquivo, eu fiz:

./File.sh < password.txt

Mas me pediram para inserir a senha de qualquer maneira.

Como faço para que a senha seja inserida no arquivo?

Responder1

SSH com 'senha em um arquivo' é comumente usado como autenticação de chave pública. Crie um par de chaves usando ssh-keygene carregue a chave pública para o 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 authorized_keysarquivo 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.

Responder2

Você pode usar sshpasspara fazer isso:

sshpass -f password.txt ssh -T [email protected]

Responder3

#!/usr/bin/expect -f
spawn ssh shw@hostname
expect -exact "shw@hostname's password: "
send -- "PASSWORD\r"
expect "$ "
interact

Expect é uma ferramenta para automatizar o processo.

informação relacionada