我已经创建了一个完全自动化的脚本,它使用 ssh 登录从一台服务器登录到另一台服务器并执行一些文件操作,但该脚本不是完全自动化的,因为它会提示输入密码,我们的 Unix 系统中没有 sshpass 和 expect 包,并且由于基础设施原因也无法安装。
因此我创建了另一个在后台运行并回显“密码”的脚本
#!/bin/bash
Do
echo "password"
echo -e "\r"
sleep 3;
while ( condition is true );
在后台运行该脚本,但是我的主脚本没有通过这种方式获取密码,即使我按下回车键,它也会说权限被拒绝。
echo "password" | ssh username@server
也不起作用。
Public-key Authentication is not allowed.
请提出建议。
答案1
您可能需要使用另一个 SSH 客户端,例如https://github.com/clarkwang/passh,http://docs.paramiko.org/en/stable/api/client.html, ETC。
在后台运行另一个脚本将是无用的,因为它没有连接到主进程的标准输入和输出。