python paramiko SSHException:通道关闭

python paramiko SSHException: Channel closed

我正在尝试建立到远程的 sftp 连接 ubuntu machine.I 能够建立 ssh connection.but 它在 open_sftp()[=12 抛出异常=]

import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=hostname,port=port,username=username,password=password)
sftp = ssh.open_sftp()

paramiko.SSHException: 频道关闭

任何人都可以提前帮助me.thanks。

上次我将 SFTP 与 Paramiko 一起使用时,我也遇到了一些问题。我在网上搜索了一下,发现了这个工具:https://github.com/jbardin/scp.py

要使用它:

from scp import SCPClient
import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=hostname,port=port,username=username,password=password)

scpclient = SCPClient(ssh.get_transport(), socket_timeout=15.0)
scpclient.put("my_local_path", "my_remote_path")

试试这个:

vim /etc/ssh/sshd_config

取消注释这一行:

# Subsystem     sftp    /usr/libexec/openssh/sftp-server

祝你好运!

在 Ubuntu 以外的远程操作系统上, 中列出的注释行可能不存在。在这种情况下,您可以通过将行添加到文件中并将路径修改为指向远程系统 sftp-server.

的正确位置来解决问题。

在 QNX 上,我能够通过修改 /etc/ssh/sshd_config 文件并添加以下行来解决此问题:

Subsystem     sftp    /usr/libexec/sftp-server

尽管与文件的其余部分相比,该行的格式似乎不合适,但它仍然被证明是一个成功的解决方案,因为我能够从 SSH 客户端对象成功打开 SFTP 客户端而没有生成 SSHException .