我有一个要求,我需要做以下
我需要ssh到一个linux框,运行命令,返回输出,我需要做一些操作。
这可以通过python子进程模块实现。
基本上我需要一个.py代码,我将提供用于连接到linux框的ip地址,用户名和密码,并运行命令并获取输出。
也可以通过Python中提供的任何其他模块实现。
欢迎提出建议。
答案 0 :(得分:3)
你的问题用“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']
我不知道你想做什么操作。
答案 1 :(得分:0)
如果它只是一个命令,您只需将其附加到命令行:
ssh user@host "echo foo"
然后将返回foo。如果您在远程主机的ssh-agent
文件中使用~/.ssh/authorized_keys
和您的公钥,那么您甚至不需要输入密码。