python执行linux命令ssh

不及物动词 其他 157

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Python中执行Linux命令ssh可以使用`subprocess`模块。下面是一个示例代码:

    “`python
    import subprocess

    # 设置ssh命令参数
    host = ‘192.168.1.100’ # 主机IP地址
    username = ‘username’ # 登录用户名
    password = ‘password’ # 登录密码

    # 构造ssh命令字符串
    command = f’ssh {username}@{host}’

    # 执行ssh命令
    process = subprocess.Popen(command, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

    # 向标准输入流输入命令
    command_input = ‘ls -l\n’ # 要执行的命令
    process.stdin.write(command_input.encode())

    # 读取标准输出流和错误流数据
    output, error = process.communicate()
    output = output.decode()
    error = error.decode()

    # 打印结果
    print(output)
    print(error)
    “`

    在这个示例中,我们使用`subprocess.Popen`函数创建一个子进程来执行ssh命令。然后,我们通过标准输入流将要执行的命令发送到ssh连接,并使用`communicate`方法来读取标准输出流和错误流的数据。最后,我们将输出结果打印出来。

    注意:在实际使用中,推荐使用SSH密钥认证而不是密码认证来提高安全性。另外,还可以使用`paramiko`等第三方库来实现更高级的SSH连接功能。

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

    要在Python中执行Linux命令SSH,您可以使用`paramiko`库。`paramiko`是一个Python库,它提供了SSH协议的实现,允许您建立与远程服务器的安全连接并执行命令。

    下面是在Python中使用`paramiko`库执行SSH命令的步骤:

    1. 首先,确保您已安装`paramiko`库。您可以通过运行以下pip命令来安装它:

    “`
    pip install paramiko
    “`

    2. 在代码中导入`paramiko`库:

    “`python
    import paramiko
    “`

    3. 使用`paramiko`库创建SSH客户端对象:

    “`python
    ssh_client = paramiko.SSHClient()
    “`

    4. 设置SSH客户端对象的策略:

    “`python
    ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    “`

    这将自动添加远程主机的SSH密钥到已知主机列表中,如果远程主机的密钥发生变化,会触发警告。

    5. 使用`connect()`方法连接到远程主机:

    “`python
    ssh_client.connect(hostname=’远程主机IP’, port=22, username=’用户名’, password=’密码’)
    “`

    在`connect()`方法中,将`hostname`替换为远程主机的IP地址,`port`替换为SSH端口(默认为22),`username`替换为登录远程主机的用户名,`password`替换为登录密码。

    6. 使用`exec_command()`方法执行SSH命令:

    “`python
    stdin, stdout, stderr = ssh_client.exec_command(‘要执行的命令’)
    “`

    在`exec_command()`方法中,将`要执行的命令`替换为您要在远程主机上执行的实际命令。

    7. 使用`stdout`和`stderr`对象读取命令的输出和错误信息:

    “`python
    output = stdout.read().decode(‘utf-8’)
    error = stderr.read().decode(‘utf-8’)
    “`

    将输出和错误信息读取到字符串变量中,以便后续处理和分析。

    8. 关闭SSH连接:

    “`python
    ssh_client.close()
    “`

    在执行完所有命令后,记得关闭SSH连接。

    请注意,使用SSH执行命令需要远程主机允许SSH登录,并且您必须具有正确的用户名和密码。另外,建议使用密钥认证而不是密码认证来增加安全性。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Python中执行Linux命令ssh需要借助于subprocess模块。subprocess模块允许我们在Python程序中创建新的进程,并与其进行通信。以下是通过Python执行ssh命令的步骤:

    1. 导入subprocess模块

    “`python
    import subprocess
    “`

    2. 构建ssh命令

    “`python
    command = “ssh username@hostname”
    “`

    3. 调用subprocess模块的Popen函数执行命令

    “`python
    proc = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    “`

    在这里,shell参数设置为True表示使用shell执行命令,stdout参数指定标准输出流,stderr参数指定标准错误流。

    4. 读取标准输出和错误输出

    “`python
    output, error = proc.communicate()
    “`

    通过communicate()方法读取进程的输出。返回的output是执行命令的标准输出,error是执行命令的标准错误。

    5. 处理输出结果

    “`python
    if output:
    print(“标准输出:”)
    print(output.decode())
    else:
    print(“标准输出为空”)
    if error:
    print(“标准错误:”)
    print(error.decode())
    else:
    print(“标准错误为空”)
    “`

    在这里,我们判断输出是否为空,并将输出和错误输出转换为字符串并打印出来。如果输出为空,表示命令执行没有问题。

    完整的代码如下:

    “`python
    import subprocess

    command = “ssh username@hostname”
    proc = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    output, error = proc.communicate()

    if output:
    print(“标准输出:”)
    print(output.decode())
    else:
    print(“标准输出为空”)
    if error:
    print(“标准错误:”)
    print(error.decode())
    else:
    print(“标准错误为空”)
    “`

    使用这段代码,你可以在Python中执行ssh命令并获取输出结果。请确保你已经安装了ssh客户端,并将username和hostname替换为实际的用户名和主机名。

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

400-800-1024

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

分享本页
返回顶部