【问题标题】:Cannot receive ifconfig data from exec_command with Paramiko [duplicate]无法使用 Paramiko 从 exec_command 接收 ifconfig 数据 [重复]
【发布时间】:2023-04-11 10:14:01
【问题描述】:

我编写了一个连接到虚拟机的代码(使用 SSH 和 Paramiko)并执行几个命令。但我没有从ifconfig 命令得到结果(其余命令仍然正常) 信息:

  • Python 版本:3.7
  • Paramiko 版本:2.4.2
  • 操作系统:Linux 4.18

我的代码:

#!/usr/bin/env python3

import paramiko
import getpass


def ssh_connect(host, port):

    USERNAME = input("username: ")
    PASSWORD = getpass.getpass("password: ")
    CMDs = ['pwd', 'ifconfig', 'lsblk']
    try:
        ssh_client = paramiko.SSHClient()
        ssh_client.load_system_host_keys()
        ssh_client.connect(host, port=port, username=USERNAME, password=PASSWORD)
        for CMD in CMDs:
            print(f"{USERNAME}@{host}$ {CMD}")
            _, stdout, stderr = ssh_client.exec_command(CMD.strip())
            data_array_return = stdout.read().decode()
            for line in data_array_return.split("\n"):
                print(str(line))
        ssh_client.close()
    except Exception as e:
        print(e)


def main():
    HOST = input("hostname: ")
    PORT = int(input("port: "))
    ssh_connect(HOST, PORT)


if __name__ == "__main__":
    main()

我的输出

ctnguyenvn[paraSSH]$ ./paramiko_ssh_simple.py 
hostname: 192.168.145.10
port: 22
username: linux-victim
password: 
linux-victim@192.168.145.10$ pwd
/home/linux-victim

linux-victim@192.168.145.10$ ifconfig

linux-victim@192.168.145.10$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   30G  0 disk 
├─sda1   8:1    0  300M  0 part /boot
├─sda2   8:2    0    2G  0 part [SWAP]
└─sda3   8:3    0 27.7G  0 part /
sr0     11:0    1 1024M  0 rom 

我认为我的代码没有错。如何从ifconfig 命令获取结果?

stderrifconfig 显示:

bash: ifconfig: 找不到命令

【问题讨论】:

  • 你试过阅读stderr吗?
  • 谢谢,stderr 中的结果:bash: ifconfig: command not found,但我不明白为什么虚拟机中的结果(ifconfig 命令)成功时输出错误

标签: python linux ssh paramiko


【解决方案1】:

输入ifconfig的完整路径。

你可以用这个命令得到它:

which ifconfig

【讨论】:

  • 谢谢,我发送了echo $PATH 命令,结果/usr/local/bin:/usr/bin 不包含ifconfig 命令(/usr/sbin/ifconfig)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-28
相关资源
最近更新 更多