我随机尝试在 bash 1中执行以下命令
cat /some/file | ssh user@machine 'cat >/destination/file
远程计算机上没有安装密钥,因此唯一的身份验证方法是使用密码机制。我认为这行不通,因为管道会断开 SSH 的标准输入与终端的连接。当系统提示我输入密码并且文件已成功发送时,我感到很惊讶。
关于 SSH 如何在未连接的情况下读取键盘以提示输入密码的问题,有什么想法吗?
1我知道有更好的替代方法可以在两台计算机之间复制文件。
答案1
(Open)ssh直接从tty读取。看:
答案2
cat /some/file | ssh user@machine 'cat >/destination/file
这不起作用,因为在显示提示和读取密码(安全)之前ssh
截断了它。stdin
可能的解决方法是使用expect
脚本,它将与正在运行的ssh
进程交互。