Как получить вложенный sftp в скрипте ssh, чтобы дождаться запроса пароля - PullRequest
1 голос
/ 08 июня 2019

То, что я пытаюсь сделать здесь, это следующее.Я хочу подключиться к серверу ssh, изнутри этого сервера, sftp к другому серверу, получить файл, сохранить его, а затем получить с него некоторую информацию и сохранить ее в переменной file.Проблема в том, что client@server.com требует пароль, и когда команда sftp находится в сценарии ssh, он не ждет, когда пользователь введет пароль.Как я могу заставить скрипт ждать, пока пользователь введет пароль, прежде чем продолжить работу с остальной частью скрипта.

KEYPAIR="..."
PUBLIC_DNS="..."
ssh -i $KEYPAIR "ec2-user@$(sed -e 's/^"//' -e 's/"$//' <<<"$PUBLIC_DNS")" << EOF

    echo "Finding latest file"
    echo ls -t | sftp client@server.com > files.txt
    file=$(head -n 2 files.txt | sed -n '2p')

EOF

1 Ответ

1 голос
/ 08 июня 2019

А как насчет опции аутентификации по паролю sftp: установите с первого сервера ~ / .ssh / id_rsa.pub в ~ / .ssh / authorized_keys на другом сервере. Затем ваша сессия sftp на другом сервере начнет аутентифицироваться. Поэтому скрипт на первом сервере может получить необходимую информацию, и больше не нужно вводить пароль.

...