我想在这里完成的工作如下。我想从该服务器ssh到服务器,再sftp到另一台服务器,检索文件,存储它,然后从中检索一些信息,并将其存储在file
变量中。问题是,client@server.com需要密码,并且当sftp脚本中使用sftp命令时,它不会立即要求用户输入密码。在继续执行脚本的其余部分之前,如何让脚本等待用户输入密码。
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
答案 0 :(得分:1)
关于sftp密码身份验证的选项如何:从第一台服务器将〜/ .ssh / id_rsa.pub安装到anotherServer上的〜/ .ssh / authorized_keys。然后,您在anotherServer上的sftp会话将开始通过身份验证。因此,第一台服务器上的脚本随后可以派生所需的信息,而无需再键入密码。