我之前在这里问过一个问题。我的问题是我试图通过管道将我的密码提供给 scp
echo mypassword | scp [email protected]:project/* ~/project/
但是它仍然要求我手动输入密码。我应该如何在命令中指定 mypassword 到 scp?
我仍然不明白其中一个答复。例如,TTY 的输入流是什么?输入流的常用方式有哪些?如何知道输入到命令的标准输入是什么类型的输入流?例如 ssh/scp。
我之前在这里问过一个问题。我的问题是我试图通过管道将我的密码提供给 scp
echo mypassword | scp [email protected]:project/* ~/project/
但是它仍然要求我手动输入密码。我应该如何在命令中指定 mypassword 到 scp?
我仍然不明白其中一个答复。例如,TTY 的输入流是什么?输入流的常用方式有哪些?如何知道输入到命令的标准输入是什么类型的输入流?例如 ssh/scp。
基本上 SSH(以及 SCP 和 SFTP 等相关工具)探测其输入似乎来自哪里,如果它不是来自可能是实际用户的用户,它将不会通过该方法接受密码,而是要求输入密码或更直接地来自用户的密码。
出于安全原因,不建议(并且,IIRC,实际上不可能)按照您的意愿在命令行上提供您的 SSH 密码。
如果您需要不使用密码登录,则需要配置基于密钥的身份验证,幸运的是这并不困难。那里有很多很好的教程,快速搜索一下http://novosial.org/openssh/publickey-auth/这看起来像是对这个和其他相关细节的很好描述,你可能会觉得有用。