我正在尝试使用运行 scp
(安全副本)命令subprocess.Popen
。登录名要求我发送密码:
from subprocess import Popen, PIPE
proc = Popen(['scp', "user@10.0.1.12:/foo/bar/somefile.txt", "."], stdin = PIPE)
proc.stdin.write(b'mypassword')
proc.stdin.flush()
这立即返回错误:
user@10.0.1.12's password:
Permission denied, please try again.
我 确定 密码正确。我可以通过scp
在外壳上手动调用来轻松验证它。那为什么不起作用呢?
请注意,有许多与此类似的问题,询问subprocess.Popen
并发送用于自动SSH或FTP登录的密码
这些问题的答案不起作用和/或不适用,因为我使用的是Python 3。
您链接的第二个答案建议您使用Pexpect(这通常是与需要输入的命令行程序进行交互的正确方法)。它的一个分支适用于python3,您可以使用它。
我正在尝试设置一个类,以便我可以通过ssh连接到远程服务器(我有IP、用户名和密码),然后发送类似“echo”test“”的命令,然后接收回输出(例如,“test”)。我用JSch来做这个,但我不知道怎么做。 我不知道该怎么办,连接后我卡住了。 非常感谢您的建议。
> 停止防火墙服务: 服务firewall_service停止 将进程附加到gdbserver 当我尝试通过在主机框上运行'target remote remote_ip:remote_port'来启动主机上的调试时,我得到一个'connection timedout'错误。 你们能看到我做错了什么吗,任何需要检查的东西,或者通过ssh远程调试的替代方法吗?我将不胜感激。谢谢
问题内容: 我想使用scp / ssh将一些文件上传到服务器。我发现我需要使用基于证书的身份验证,但是问题是如何?我真正想做的就是使用与git一起使用的相同种类的凭据- 存储在Jenkins中的密码ssh证书。但是,我无法解决该问题-代码段生成器对此没有明显的选择。 别人做什么?是否有未记录的功能可以做到这一点? 问题答案: 如果安装SSH代理插件,则可以使用管道步骤在ssh- agent处于活动
我想PHP发送myfile.txt到远程SSH使用密码登录。 在OSX bash中,我使用以下命令手动发送文件: 因为我需要通过PHP来完成,所以我制作了这个bash脚本: 我可以使用:在终端中,它根据我的需要发送文件。 现在的问题是,当我在PHP中添加这个bash脚本时,它不会发送文件。 我曾经尝试过: 我被这个错误卡住了/msg: 在bash中,密码被发送,一切正常,通过PHP它不上传文件。我
问题内容: 通过Java编程语言执行scp传输的最佳方法是什么?看来我可以通过JSSE,JSch或充气城堡Java库执行此操作。这些解决方案似乎都没有一个简单的答案。 问题答案: 我最终使用了Jsch-这非常简单,并且似乎可以很好地扩展(我每隔几分钟就抓取几千个文件)。
但是现在要通过Java的JSch库来完成,怎么做呢?第一次尝试了portforwarding,但在终端上我没有这样做(没有在中设置参数)。 然后我遇到了一个问题,如何使用JSCH SSH到另一个SSH服务器后面的服务器?,但我不明白如何创建tcp隧道!