欢迎访问宙启技术站
智能推送

通过pexpect.pxssh模块在Python中实现SSH连接和命令执行

发布时间:2023-12-28 09:47:47

在Python中,可以使用pexpect.pxssh模块实现SSH连接和命令执行。pexpect.pxssh是一个Python模块,用于自动化SSH命令行会话。它可以通过输入用户名和密码,建立SSH连接,执行命令,并返回执行结果。

要使用pexpect.pxssh模块,首先需要安装pexpect模块。可以使用pip install pexpect命令安装pexpect模块。

下面是一个使用pexpect.pxssh模块实现SSH连接和命令执行的示例代码:

import pexpect

def ssh_connect(ip, username, password):
    try:
        ssh = pexpect.pxssh.pxssh()
        ssh.login(ip, username, password)
        return ssh
    except Exception as e:
        print("SSH connection failed.")
        print(str(e))
        return None

def execute_command(ssh, command):
    try:
        ssh.sendline(command)
        ssh.prompt()
        result = ssh.before.decode('utf-8')
        return result
    except Exception as e:
        print("Command execution failed.")
        print(str(e))
        return None

if __name__ == '__main__':
    ip = '192.168.1.100'
    username = 'admin'
    password = 'admin123'
    command = 'ls -l'

    ssh = ssh_connect(ip, username, password)
    if ssh is not None:
        result = execute_command(ssh, command)
        print(result)
        ssh.logout()

在这个示例中,首先定义了一个名为ssh_connect的函数,用于建立SSH连接。函数接受IP地址、用户名和密码作为参数,并返回一个SSH连接对象。

接下来,定义了一个名为execute_command的函数,用于执行命令。函数接受一个SSH连接对象和命令作为参数,并返回命令执行结果。

在主函数中,设置了SSH连接的IP地址、用户名、密码和要执行的命令。通过调用ssh_connect函数,建立SSH连接,并将返回的SSH连接对象赋值给ssh变量。然后,通过调用execute_command函数,执行指定命令,并将执行结果打印出来。最后,通过调用ssh.logout()方法关闭SSH连接。

这个示例演示了如何使用pexpect.pxssh模块在Python中实现SSH连接和命令执行。可以根据实际需求,修改IP地址、用户名、密码和执行的命令,以满足不同的场景。