问题标签 [paramiko]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
13 回答
321457 浏览

python - 如何在 Python 中进行 scp?

在 Python 中 scp 文件的最 Pythonic 方式是什么?我知道的唯一路线是

这是一种 hack,在类 Linux 系统之外无法使用,并且需要 Pexpect 模块的帮助以避免密码提示,除非您已经为远程主机设置了无密码 SSH。

我知道 Twisted's conch,但我宁愿避免自己通过低级 ssh 模块实现 scp 。

我知道paramiko,一个支持 SSH 和 SFTP 的 Python 模块;但它不支持SCP。

背景:我连接到一个不支持 SFTP 但支持 SSH/SCP 的路由器,所以 SFTP 不是一个选项。

编辑:这是如何使用 SCP 或 SSH 将文件复制到 Python 中的远程服务器的副本?. 但是,该问题并没有给出处理 Python 中键的特定于 scp 的答案。我希望有一种方法来运行类似的代码

0 投票
2 回答
6804 浏览

python - 抑制 Paramiko SSHClient 类的输出

当我调用 ParamikoSSHClient类的 connect 函数时,它会输出一些关于建立连接的日志数据,我想抑制这些数据。

有没有办法通过 Paramiko 本身或一般的 Python 来做到这一点?

0 投票
7 回答
154591 浏览

python - 在 Paramiko 中运行交互式命令

我正在尝试通过 paramiko 运行交互式命令。cmd 执行尝试提示输入密码,但我不知道如何通过 paramiko 的 exec_command 提供密码并且执行挂起。如果 cmd 执行需要交互输入,有没有办法将值发送到终端?

有谁知道如何解决这个问题?谢谢你。

0 投票
3 回答
6150 浏览

python - 为什么在加载模块时使用 Paramiko 会挂起?

将以下内容放入文件hello.pyeasy_install paramiko如果你还没有的话):

适当填写第一行。

现在输入

你会看到一些 ls 输出。

现在改为输入

然后从解释器类型中

瞧!它挂了!如果您将代码包装在一个函数中fooimport hello; hello.foo()改为执行,它将取消挂起。

为什么 Paramiko 在模块初始化中使用时会挂起? Paramiko 是如何知道它在模块初始化期间首先被使用的?

0 投票
6 回答
46826 浏览

python - python paramiko 模块中长时间运行的 ssh 命令(以及如何结束它们)

我想tail -f logfile使用 python 的 paramiko 模块在远程机器上运行命令。到目前为止,我一直在尝试以下方式:

我希望命令在必要时运行,但我有两个问题:

  1. 我该如何干净地停止这个?我想制作一个频道,然后在完成后使用频道shutdown()上的命令-但这似乎很混乱。是否可以执行类似发送Ctrl-C到频道的标准输入的操作?
  2. readline()块,如果我有一种获取输出的非阻塞方法,我可以避免使用线程——有什么想法吗?
0 投票
3 回答
23568 浏览

python - 使用 paramiko 检查远程主机上是否存在路径

Paramiko的SFTPClient显然没有exists方法。这是我目前的实现:

有一个更好的方法吗?检查异常消息中的子字符串非常难看,而且可能不可靠。

0 投票
1 回答
8846 浏览

python - 在 Windows 上安装 Paramiko 时,我在哪里可以找到 Python Crypto 包?

我正在尝试从在 Windows 上运行的 Python 进行 SFTP,并按照此处的建议安装了 Paramiko。不幸的是,它要求 Crypto.Util.randpool 所以我需要安装 Crypto 包。我找到了适用于 Linux 的 RPMS,但找不到任何东西或适用于 windows 的源代码。

Paramiko 的自述文件指出:为 Win32 编译的 pycrypto 可以从 HashTar 主页下载: http ://nitace.bsd.uchicago.edu:8080/hashtar 。

不幸的是,该链接不起作用。PCrypto 主页上的链接也没有。

知道如何克服这个问题吗?

0 投票
1 回答
1400 浏览

python - 用于身份验证类型的 paramiko 中的 get_allowed_auths()

我正在尝试从 Python 中正在运行的 SSH 服务器获取受支持的身份验证类型/方法。

我在 Paramiko 的 ServerInterface 类中找到了这个方法 get_allowed_auths() 但我不明白它是否可以在一个简单的类似客户端的代码片段中使用(我正在写一些只在这个任务中完成的东西)。

任何人都可以建议我一些示例链接,其他分发文档?也许还有其他想法可以做到这一点?

谢谢。

0 投票
5 回答
116815 浏览

python - 使用 Python 使用 SSH 从服务器读取文件

我正在尝试使用 Python 中的 SSH 从服务器读取文件。我正在使用 Paramiko 进行连接。我可以连接到服务器并运行类似的命令cat filename并从服务器取回数据,但我尝试读取的一些文件大小约为 1 GB 或更大。

如何使用 Python 逐行读取服务器上的文件?

附加信息:经常做的是运行一个cat filename命令并将结果存储在一个变量中并解决它。但是由于这里的文件很大,我正在寻找一种方法来逐行读取服务器上的文件。

编辑:我可以读取一堆数据并将其分成几行,但问题是缓冲区中接收到的数据并不总是包含完整的行。例如,如果缓冲区有 300 行,则最后一行可能只是服务器上行的一半,而下一半将在下一次调用服务器时获取。我想要完整的线条

编辑 2:我可以使用什么命令在某个范围内的文件中打印行。就像打印前 100 行,然后打印下 100 行等等?这样缓冲区将始终包含完整的行。

0 投票
3 回答
7104 浏览

python - 解决 paramiko 上的线程清理问题

我有一个使用 paramiko 的自动化过程并出现此错误:

我知道这是清理/线程中的一个问题,但我不知道如何解决它。

我有最新版本(1.7.6),根据这个线程,它已经解决了,所以我直接下载了代码,但仍然得到错误。

失败发生在winxp/win2003下的Python 2.5/2.6。

我在__del__析构函数中关闭了连接,然后在脚本结束之前关闭它,这些都不起作用。还有更多,使用这个错误发生得更早,所以可能与解释器关闭无关?