我想传递一个密码来ssh使用bash脚本(是的,我知道我可以使用ssh密钥,但这不是我想要的).
我找到了一些正在使用的解决方案,expect但由于它不是标准的bash工具,我想知道我是否可以使用管道来做到这一点.
有人可以向我解释,为什么会这样:
echo "password\n" | ssh somehost.com
Run Code Online (Sandbox Code Playgroud)
要么
ssh somehost.com <(echo "password\n")
Run Code Online (Sandbox Code Playgroud)
不起作用?有没有可能使它工作?也许ssh作为一个不同的进程执行,获取它的PID,然后直接发送一个字符串给它?
我想在终端上运行scp时将密码放在一行上
scp user1@xxx.xxx.x.5:sys_config /var/www/dev/
使用scp定期将文件从1个unix服务器复制到另一个服务器并执行某些操作.要快速执行此操作,我希望使用一个unix脚本来执行scp并输入完成scp所需的密码.
我已经尝试了expect命令通过unix命令行发送密码,但到目前为止无法实现这一点.
示例命令
scp ./abc.txt hostname/abc.txt
expect "*password:*"
send "mypassword\r"
Run Code Online (Sandbox Code Playgroud)
我收到这些错误:
couldn't read file "password: ": no such file or directory
myscript.sh[5]: send: not found [No such file or directory]
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
首先,我很清楚关于这个主题有很多问题.我已经阅读了它们,但仍然可以找到适合我情况的答案.
我希望scp整个~/cs###/assign1目录从本地到学校的家庭目录用shell脚本.我的问题是,我的脚本中是否有一种方法可以等待密码提示,然后在我的密码中模拟键盘事件以"键入"?
这里有一个关于如何设置密钥的详细指南