我正在尝试使用TCL脚本运行以下方案 -
情景 - 主机A运行TCL脚本。主机脚本通过ssh连接到主机B.然后脚本调用从主机C(服务器)到主机B(客户端)的scp文件传输。
问题 - 该脚本实际上并未实现超时方案。但是,scp在10秒后(可能超时)失败并且没有错误消息。如果手动完成,即从主机A登录到主机B,然后从主机C scp到主机B,则没有观察到超时,文件传输成功。
使用“expect”包从tcl脚本实现ssh连接。 可能是什么原因?请提出一些解决方案。
谢谢。
答案 0 :(得分:0)
你有没有设置
RSAAuthentication yes
在主机C上,将Host B的用户的公钥添加到Host C的用户authorized_keys文件中?
有关详细信息,请参阅https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys--2。
简单测试: 尝试手动运行scp(或尝试ssh):它不应该要求你输入密码。从主机B到主机C运行 ssh -v 应包含以下行:
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/xyz/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 1047
debug1: Authentication succeeded (publickey).