我正在使用paramiko连接到ssh客户端(具有硬件)。 ssh客户端文件系统是只读的excet only / tmp文件夹。
通过终端时,执行以下操作:
ssh@hostname
获取板壳终端
执行任何命令,例如pwd
但是通过paramiko,我获得了“连接”成功(未观察到失败)
之后,在尝试exec_command ("pwd")
时,我无任何输出。
它有什么要做的事情只读取目标上的主文件夹。
如果是这样,如何将目录更改为/tmp
(目标上的可写文件夹)并使用exec_command
?
让我知道是否需要提供更多信息。
使用的环境:
Ubuntu PC
代码:
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect("xx.xx.xx.xx",username="xxxx",password="xxxx")
stdin, stdout, stderr = ssh.exec_command("pwd")
output = stdout.readlines()
output1 = stdout.channel.recv_exit_status()
error = stderr.readlines()
print ("\nOutput: ",output)
print ("\nOutput1: ",output1)
执行输出:
('\nOutput: ', [])
('\nOutput1: ', 126)
答案 0 :(得分:0)
替换:
stdin, stdout, stderr = ssh.exec_command("pwd")
作者
stdin, stdout, stderr = ssh.exec_command("cd /tmp && pwd")
使用“ cd / tmp”,请确保您位于tmp文件夹中。