我的最终目标是为 scp 创建一个别名:
首先,我需要一种自动输入远程用户密码的方法,以便将其作为单个输入命令。安全性对此来说并不是什么大问题,因此我很高兴将密码保存在文本文件中。我尝试了以下方法,但仍然提示输入:
scp from/path usr:w.x.y.z:to/path <<< "passwd"
echo "passwd" | scp from/path usr:w.x.y.z:to/path
printf "passwd\n" | scp from/path usr:w.x.y.z:to/path
一切仍提示我输入。
一旦我弄清楚了,我就会运行:
echo 'alias pts=" fixed command above"' >> ~/.bashrc
我哪里做错了?
答案1
您错误地认为可以scp
从标准输入读取密码 - 据我所知,事实并非如此。您有多种选择:
设置基于密钥的身份验证,使用带有空密码的密钥 - 请参阅如何设置无密码 SSH 登录?
使用
sshpass
实用程序(可从存储库获取)- 使用脚本进行密码交互
expect