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