我可以创建脚本来测试是否可以在python中远程使用SSH和PING命令吗?

时间:2019-01-21 17:32:25

标签: python linux networking ssh

我可以创建一个脚本来测试是否可以在python服务器上远程使用SSH和PING命令吗?

1 个答案:

答案 0 :(得分:0)

好的,这是Python3和Linux的示例。请记住,您的目标主机/服务器必须正在运行SSH服务器,才能SSH到该计算机上。

还有许多其他方法可以执行此操作...也可以使用内置的套接字模块。

我正在使用try / except来测试连接以及是否可以通过SSH到给定的主机。另外请记住,如果您的IP地址或用户名/密码不正确,也会捕获该异常。

这是对主机执行ping操作的一种方法:

>>> from subprocess import Popen, PIPE
>>> cmd = ['ping', '-c', '5', '192.168.0.13']
>>> x = Popen(cmd, stdout=PIPE).communicate()[0]
>>> x
b'PING 192.168.0.13 (192.168.0.13) 56(84) bytes of data.\n64 bytes from 192.168.0.13: icmp_seq=1 ttl=64 time=0.035 ms\n64 bytes from 192.168.0.13: icmp_seq=2 ttl=64 time=0.033 ms\n64 bytes from 192.168.0.13: icmp_seq=3 ttl=64 time=0.029 ms\n64 bytes from 192.168.0.13: icmp_seq=4 ttl=64 time=0.028 ms\n64 bytes from 192.168.0.13: icmp_seq=5 ttl=64 time=0.030 ms\n\n--- 192.168.0.13 ping statistics ---\n5 packets transmitted, 5 received, 0% packet loss, time 4091ms\nrtt min/avg/max/mdev = 0.028/0.031/0.035/0.002 ms\n'

这是使用Paramiko进行SSH的示例(是,端口应为int):

import paramiko
import sys

username = ''
password = ''
command = 'ls -l'
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
    ssh.connect("192.168.0.13", 22, username, password)
except Exception as e:
    print("unable to SSH: %s" % e)
    sys.exit()
stdin, stdout, stderr = ssh.exec_command(command)
output = stdin.read()
ssh.close()
print(output)