我需要在我的linux 5.3上执行
ssh [Linux machine red hat 5.3] date
为了获得日期结果,在ssh期间需要回答以下问题
然后我会得到日期结果
请告知如何使用python执行此自动化过程? (在我的Linux上我有 Python 2.2.3)
python脚本应该获取IP地址编号,并自动执行ssh到103.116.140.151并返回日期结果
as --> Fri Nov 18 11:25:18 IST 2011
手动过程的例子:
# ssh 103.116.140.151 date
The authenticity of host '103.116.140.151 (103.116.140.151)' can't be established.
RSA key fingerprint is ad:7e:df:9b:53:86:9f:98:17:70:2f:58:c2:5b:e2:e7.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '103.116.140.151' (RSA) to the list of known hosts.
root@10.116.10.151's password:
Fri Nov 18 11:25:18 IST 2011
答案 0 :(得分:2)
您可以通过将StrictHostKeyChecking = no参数传递给ssh来跳过主机密钥检查:
ssh -oStrictHostKeyChecking=no 103.116.140.151 date
我认为不可能对密码做同样的事情。绕过SSH密码提示的正确方法是使用受限制的无密码密钥:有关详细信息,请参阅here。
答案 1 :(得分:2)
最简单的方法是configure passwordless logins。基本上,使用
创建一个本地ssh密钥对ssh-keygen -t rsa
并将公钥放入$HOME/.ssh/authorized_keys
103.116.140.151
。如果您不关心远程主机的密钥,请添加-oStrictHostKeyChecking=no
ssh选项。
或者,使用SSH库,例如Paramiko:
import paramiko
ssh = paramiko.SSHClient()
# Uncomment the following line for the equivalent of -oStrictHostKeyChecking=no
#ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('103.116.140.151', username='user', password='diana_123')
stdin, stdout, stderr = ssh.exec_command("date")
date = stdout.read()
print(date)
答案 2 :(得分:0)