如何在Paramiko中指定文件夹路径

1 投票
2 回答
3205 浏览
提问于 2025-04-17 12:47
import paramiko
import os
import sys

ssh = paramiko.SSHClient()
paramiko.util.log_to_file('U:\\Temp\\paramiko.log')
ssh.load_system_host_keys()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())


ssh.connect('172.18.24.234','/TestBTEC/',22,'btectest','M3j0Stanf0rd')
stdin, stdout, stderr = ssh.exec_command("mkdir abc")
stdout.readlines()

这显然是在报错。正确的方法是什么,才能为远程服务器上的用户btectest设置主目录呢?

2 个回答

0

你传给SSHCient.connect()的参数不对(至少在paramiko 1.6及以上版本中是这样)。你的connect()调用应该像这样:

ssh.connect('172.18.24.234', username='btectest', password='...')

或者如果你想明确指定端口的话,可以这样写:

ssh.connect('172.18.24.234', 22, 'btectest', '...')

一旦连接成功,你应该已经在用户“btectest”的主目录下了,可以通过这个命令来查看:

stdin, stdout, stderr = ssh.exec_command("pwd")
stdout.readlines()
1

你可以把用户的主目录设置为父目录,而不是直接设置。下面是一个简单的例子:

abc_dir = os.path.join('%UserProfile%','abc')
cmd = "mkdir %s" % abc_dir
stdin, stdout, stderr = ssh.exec_command(cmd)

撰写回答