我是新来帕拉米科的。我试图创建一个简单的脚本,允许任何人使用他们的Linux凭据来运行命令。我决定用一个简单的ls
命令进行测试,但我收到了错误。
import paramiko
username = *<USERNAME>*
hostname = *<HOSTNAME>*
port = 22
trans = paramiko.Transport((hostname,port))
trans.connect(username=username, password=password)
channel = trans.open_channel("session")
print(channel.send_ready())
print(channel.get_transport())
stdin,stdout,stderr = channel.exec_command("ls -lah")
trans.close()
字符串
我收到以下错误:
TypeError Traceback (most recent call last)
<ipython-input-28-ce837beea6fe> in <module>()
6 trans.connect(username=username, password=password)
7 channel = trans.open_channel("session")
----> 8 stdin,stdout,stderr = channel.exec_command("ls -lah")
TypeError: 'NoneType' object is not iterable
型
有什么想法我可能做错了吗?
1条答案
按热度按时间tv6aics11#
session
通道(除非您的服务器实现了一些非标准通道)。有sftp
、shell
和exec
通道。您想使用
exec
通道。1.您不需要在Paramiko中明确打开
exec
通道。使用SSHClient.exec_command
方法即可。SSHClient.exec_command
(与Channel.exec_command
相反)返回3倍。例如,请参见Python Paramiko - Run command:
字符串