bash - 如何在ssh脚本中获取嵌套的sftp以等待密码提示

标签 bash unix ssh pipe sftp

我要在这里完成的工作如下。我想从该服务器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

最佳答案

关于sftp密码身份验证的选项如何:从第一台服务器将〜/ .ssh / id_rsa.pub安装到anotherServer上的〜/ .ssh / authorized_keys。然后,您在anotherServer上的sftp session 将开始通过身份验证。因此,第一台服务器上的脚本然后可以派生所需的信息,而无需再键入密码。

关于bash - 如何在ssh脚本中获取嵌套的sftp以等待密码提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56504049/

相关文章:

bash - Shell 脚本 - 完成前退出

linux - 在 Bash 中以不同的频率运行两个操作

macos - 使用 Mac 上的 iTerm2,如何从命令行上的光标删除向前的单词?

python - 在 PyCharm (sciview) 中本地查看远程 python 解释器的绘图

Laravel 家园 SSH

linux - 移动文件和创建年月日文件夹时遇到问题

linux - 如何在新格式化的硬盘上创建文件时禁用密码请求

shell - 在文件中查找并替换并覆盖文件不起作用,它会清空文件

linux - 为什么 crontab 在指定月份和星期几时使用 OR?

ruby - 测试 ssh 连接