python远程登录linux执行命令

不及物动词 其他 13

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    要实现Python远程登录Linux执行命令,可以使用paramiko模块。下面是一个示例代码:

    “`python
    import paramiko

    def execute_ssh_command(hostname, port, username, password, command):
    # 创建SSH客户端对象
    client = paramiko.SSHClient()
    # 允许连接不在known_hosts文件中的主机
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    try:
    # 连接SSH服务器
    client.connect(hostname=hostname, port=port, username=username, password=password)
    # 执行命令
    stdin, stdout, stderr = client.exec_command(command)
    # 获取命令执行结果
    result = stdout.read().decode()
    # 打印结果
    print(result)
    except Exception as e:
    print(f”执行命令出错:{e}”)
    finally:
    # 关闭SSH连接
    client.close()

    # 示例用法
    hostname = ‘192.168.1.100’
    port = 22
    username = ‘your_username’
    password = ‘your_password’
    command = ‘ls -l’
    execute_ssh_command(hostname, port, username, password, command)
    “`

    说明:
    1. 首先,导入paramiko模块。
    2. 然后,定义一个`execute_ssh_command`函数来执行SSH连接和命令执行操作。
    3. 在函数内部,首先创建一个SSH客户端对象,并设置允许连接不在known_hosts文件中的主机。
    4. 接着,使用`client.connect()`方法连接SSH服务器,传入目标主机名、端口、用户名和密码。
    5. 使用`client.exec_command()`方法执行要执行的命令,返回的是一个三元组(stdin, stdout, stderr)。
    6. 通过读取stdout来获取命令执行结果。
    7. 最后,关闭SSH连接。

    请根据自己的实际情况修改hostname、port、username、password和command参数,然后调用`execute_ssh_command()`函数执行远程命令。

    注意:请确保目标Linux主机已开启SSH服务,并且对应的用户名和密码是正确的。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Python中,可以使用paramiko库来实现远程登录Linux并执行命令。paramiko是一个用于SSHv2协议的Python实现,它可以连接到远程服务器并执行各种命令。

    以下是使用paramiko库进行远程登录Linux并执行命令的步骤:

    1. 使用paramiko库导入必要的模块:
    “`python
    import paramiko
    “`

    2. 创建SSHClient对象,并建立与远程服务器的连接:
    “`python
    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    client.connect(hostname, port, username, password)
    “`
    其中,hostname是远程服务器的主机名或IP地址,port是SSH端口(默认为22),username是登录用户名,password是登录密码。

    3. 执行命令并获取输出结果:
    “`python
    stdin, stdout, stderr = client.exec_command(command)
    “`
    其中,command是要执行的命令。

    4. 使用stdout来获取命令的输出结果:
    “`python
    output = stdout.read().decode(‘utf-8’)
    “`
    使用decode(‘utf-8’)将字节流转换为字符串。

    5. 关闭与远程服务器的连接:
    “`python
    client.close()
    “`

    通过以上步骤,我们可以编写一个函数来实现远程登录Linux并执行命令的功能:
    “`python
    import paramiko

    def remote_login(hostname, port, username, password, command):
    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    client.connect(hostname, port, username, password)
    stdin, stdout, stderr = client.exec_command(command)
    output = stdout.read().decode(‘utf-8’)
    client.close()
    return output
    “`

    使用该函数可以实现远程登录Linux并执行命令:
    “`python
    output = remote_login(hostname, port, username, password, command)
    print(output)
    “`

    注意:在使用paramiko库之前,需要确保已经安装了该库,可以使用pip install paramiko命令进行安装。另外,为了安全起见,建议使用SSH密钥认证而不是密码认证来进行远程登录。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    远程登录Linux系统并执行命令,可以使用Python的paramiko模块。Paramiko是一个纯Python编写的SSHv2协议实现,可以与远程服务器进行安全的通讯。

    下面是一步步的操作流程:

    1. 安装paramiko模块:在命令行中使用pip命令进行安装。
    “`shell
    pip install paramiko
    “`

    2. 导入paramiko模块:
    “`python
    import paramiko
    “`

    3. 建立SSH连接:
    “`python
    # 创建SSH客户端对象
    ssh = paramiko.SSHClient()

    # 自动添加服务器的主机密钥到本地的known_hosts文件中
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

    # 连接远程服务器
    ssh.connect(hostname, port, username, password)
    “`

    4. 执行命令:
    “`python
    # 执行命令并获取输出
    stdin, stdout, stderr = ssh.exec_command(command)

    # 读取输出
    output = stdout.readlines()

    # 打印输出
    for line in output:
    print(line.strip())
    “`

    5. 关闭SSH连接:
    “`python
    # 关闭连接
    ssh.close()
    “`

    完整的示例代码如下:
    “`python
    import paramiko

    def run_command(hostname, port, username, password, command):
    # 创建SSH客户端对象
    ssh = paramiko.SSHClient()

    # 自动添加服务器的主机密钥到本地的known_hosts文件中
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

    try:
    # 连接远程服务器
    ssh.connect(hostname, port, username, password)

    # 执行命令并获取输出
    stdin, stdout, stderr = ssh.exec_command(command)

    # 读取输出
    output = stdout.readlines()

    # 打印输出
    for line in output:
    print(line.strip())
    except paramiko.AuthenticationException:
    print(“Authentication failed.”)
    except paramiko.SSHException as sshException:
    print(“Unable to establish SSH connection: %s” % sshException)
    finally:
    # 关闭连接
    ssh.close()

    # 调用函数执行命令
    run_command(“remote_hostname”, 22, “username”, “password”, “ls -l”)
    “`

    在上述代码中,你需要替换”remote_hostname”、22、”username”和”password”为你实际的远程服务器主机名、端口、用户名和密码,”ls -l”为你想要执行的实际命令。

    这样,你就可以使用Python远程登录Linux系统并执行命令了。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部