Извлечение пароля из файла при подключении к машине по SSH

Извлечение пароля из файла при подключении к машине по SSH

Я хочу подключиться по SSH к удаленной машине, но вместо того, чтобы вводить пароль, я хочу перенаправить его из другого файла.

Итак, у меня есть файл password.txt, в котором хранится пароль. File.shЭто мой bash-файл.

ВFile.sh

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

При запуске файла я сделал следующее:

./File.sh < password.txt

Но меня все равно попросили ввести пароль.

Как мне получить пароль для ввода из файла?

решение1

SSH с 'паролем в файле' обычно используется как аутентификация с открытым ключом. Создайте пару ключей с помощью ssh-keygen, загрузите открытый ключ на другой хост:

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

и разместите его как ~/.ssh/authorized_keys:

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

или, если authorized_keysфайл уже существует:

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

установите соответствующие права доступа (600 для файла, 700 для каталога):

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

и начните новый сеанс SSH.

решение2

sshpassДля этого можно использовать :

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

решение3

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

Expect — это инструмент для автоматизации процесса.

Связанный контент