【发布时间】:2011-04-10 08:41:38
【问题描述】:
我想编写一个 shell 脚本来执行以下操作
while read line; do
echo $line
done<input.txt | ssh > output.txt
目前这有点伪代码(原件正在工作),但您应该能够知道它在做什么。对于简单的应用程序,这是一种享受,但 ssh 会检查输入以查看它的标准输入是否是终端。
有没有办法让 ssh 认为我的管道循环的内容是终端而不是管道?
编辑:很抱歉最初没有添加,这是为了允许 ssh 通过 shell 脚本登录(回答密码提示)
【问题讨论】:
-
冷静下来,不要以为我不知道这一点。这是当前的方法,但是要将密钥放在服务器上,它仍然需要提示一次密码。
-
首先,你刚刚编辑了你的问题,说你需要一些东西来伪造键盘登录。我确实不认为那样。如果您要颠覆它以在某个服务器上获取您的密钥,那么就不再有安全密钥了。顺便说一句,我会用更有用的提示更新我的答案。
-
如果它用于 ssh - 你不能制作一个适合 shh 的
SSH_ASKPASSenv var 的脚本吗? (SSH(1))。只是一个想法,没有尝试过 -
(edited) AHHHHH - 使用公钥认证?网上至少有一百亿个常见问题解答。有什么理由不能用吗?