相关疑难解决方法(0)

Python3兼容的ssh库

我检查了以下内容,其中没有一个适用于Python 3:

  • 的paramiko
  • Pexpect的
  • 一些自定义脚本

您建议如何使用SSH操作:

  • 密码登录
  • 基于密钥的认证
  • 文件传输
  • 远程命令执行

我想避免,subprocess.Popen因为这会在多线程时引起一些令人头疼的问题.

ssh python-3.x

7
推荐指数
1
解决办法
2998
查看次数

如何使用python打开SSH隧道?

我正在尝试使用django连接到远程mysql数据库.
该文档指定首先需要打开SSH隧道才能连接到数据库.
是否有一个python库可以在设置某些设置时打开SSH隧道?

python django ssh-tunnel

4
推荐指数
3
解决办法
2万
查看次数

如何使用 python 3.2 使用 scp 发送文件?

我正在尝试通过 libssh2 的 no-ack 的 python byndings 将一组文件发送到远程服务器,但由于缺乏文档,我完全不知道库的使用情况。

我尝试使用 libssh2 的 C 文档但没有成功。

由于我使用的是 python 3.2,所以 paramiko 和 pexpect 是不可能的。有人可以帮忙吗?

编辑:我刚刚在 no-Ack 的博客评论中找到了一些代码。

import libssh2, socket, os

SERVER = 'someserver'
username = 'someuser'
password = 'secret!'

sourceFilePath = 'source/file/path'
destinationFilePath = 'dest/file/path'

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((SERVER, 22))

session = libssh2.Session()
session.startup(sock)

session.userauth_password(username, password)

sourceFile = open(sourceFilePath, 'rb')

channel = session.scp_send(destinationFilePath, 0o644, os.stat(sourceFilePath).st_size)

while True:
    data = sourceFile.read(4096)
    if not data:
        break
    channel.write(data)

exitStatus = channel.exit_status()
channel.close()
Run Code Online (Sandbox Code Playgroud)

似乎工作正常。

ssh libssh2 python-3.2

3
推荐指数
1
解决办法
5093
查看次数

标签 统计

ssh ×2

django ×1

libssh2 ×1

python ×1

python-3.2 ×1

python-3.x ×1

ssh-tunnel ×1