我有一个要求,我需要执行以下操作
我需要 ssh 到一个 linux 机器,运行一个命令,取回输出,我需要做一些操作。
这可以通过python子进程模块实现吗?
基本上我需要一个 .py 代码,我将在其中提供 IP 地址、用户名和密码以连接到 linux 机器并运行命令并获取输出。
这也可以通过 Python 中可用的任何其他模块实现。
欢迎提出建议。
我有一个要求,我需要执行以下操作
我需要 ssh 到一个 linux 机器,运行一个命令,取回输出,我需要做一些操作。
这可以通过python子进程模块实现吗?
基本上我需要一个 .py 代码,我将在其中提供 IP 地址、用户名和密码以连接到 linux 机器并运行命令并获取输出。
这也可以通过 Python 中可用的任何其他模块实现。
欢迎提出建议。
你的问题被标记为“paramiko”,那么你为什么不直接使用它呢?
我需要 ssh 到一个 linux 机器,运行一个命令,取回输出,我需要做一些操作。
ssh 到 linux 机器(或任何其他 ssh 服务器):
>>> import paramiko
>>> ssh=paramiko.SSHClient()
>>> ssh.load_system_host_keys()
>>> ssh.connect(hostname='localhost', username='haiprasan86', password='secret')
>>> print ssh
<paramiko.SSHClient object at 0xdf2590>
运行命令:
>>> _, out, err = ssh.exec_command('ls -l /etc/passwd')
>>> # block until remote command completes
>>> status = out.channel.recv_exit_status()
>>> print status
0
取回输出:
>>> print out.readlines()
['-rw-r--r--. 1 root root 2351 Mar 27 10:57 /etc/passwd\n']
我不知道你想做什么操作。
如果它只是一个命令,您可以简单地将其附加到命令行:
ssh user@host "echo foo"
然后会返回 foo. 如果您ssh-agent
在远程主机的 -file 中使用您的公钥,~/.ssh/authorized_keys
那么您甚至不需要询问密码。