相关疑难解决方法(0)

如何在python scp?

在Python中scp文件的最pythonic方法是什么?我所知道的唯一途径是

os.system('scp "%s" "%s:%s"' % (localfile, remotehost, remotefile) )
Run Code Online (Sandbox Code Playgroud)

这是一个hack,并且在类似Linux的系统之外不起作用,并且需要Pexpect模块的帮助以避免密码提示,除非您已经将无密码SSH设置到远程主机.

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

我知道paramiko,一个支持ssh和sftp的Python模块; 但它不支持scp.

背景:我正在连接到不支持sftp但支持ssh/scp的路由器,所以sftp不是一个选项.

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

import scp

client = scp.Client(host=host, user=user, keyfile=keyfile)
# or
client = scp.Client(host=host, user=user)
client.use_system_keys()
# or
client = scp.Client(host=host, user=user, password=password)

# and then
client.transfer('/etc/local/filename', '/etc/remote/filename')
Run Code Online (Sandbox Code Playgroud)

python ssh scp paramiko

147
推荐指数
10
解决办法
23万
查看次数

59
推荐指数
2
解决办法
10万
查看次数

通过Python中的scp和os模块从远程服务器安全复制文件

我是Python和编程的新手.我正在尝试通过python脚本在两台计算机之间复制文件.但是代码

os.system("ssh " + hostname + " scp " + filepath + " " + user + "@" + localhost + ":" cwd)
Run Code Online (Sandbox Code Playgroud)

不行.我认为它需要一个密码,如使用SCP或SSH如何使用Python将文件复制到远程服务器中所述?.我没有得到任何错误日志,该文件不会显示在我当前的工作目录中.

但是每个其他命令都有os.system("ssh " + hostname + "command")或者os.popen("ssh " + hostname + "command")确实有效.- >command = e.g. ls

当我ssh hostname scp file user@local:directory 在命令行中尝试 时,它无需输入密码即可运行.

我尝试将os.popen命令与getpass和pxssh模块结合起来建立与远程服务器的ssh连接,并使用它直接发送命令(我只测试它以获得简单的命令):

import pxssh
import getpass

ssh = pxssh.pxssh()
ssh.force_password = True
hostname = raw_input("Hostname: ")
user = raw_input("Username: ")
password = getpass.getpass("Password: ")
ssh.login(hostname, …
Run Code Online (Sandbox Code Playgroud)

python ssh scp

5
推荐指数
1
解决办法
1万
查看次数

使用 python 和 .pem 文件通过 SCP 进行文件传输的最佳方法

我想在 python 中复制该命令:

scp -i aKey.pem aFile.txt ec2-user@serverIp:folder
Run Code Online (Sandbox Code Playgroud)

我找到了一些 SCP 示例,但没有发现既不使用 .pem 密钥也不通知用户密码。我怎样才能在python中做到这一点?

python ssh scp

5
推荐指数
1
解决办法
1万
查看次数

从python执行scp时出错

此代码提供以下错误:

os.system("scp %s:/export/home/sample/backup.sql  %s:/home/rushi/abc.sql" % (a, b))

Permission denied (publickey,keyboard-interactive).
lost connection
Run Code Online (Sandbox Code Playgroud)

a和b是命令行参数,它接受用户名和机器名作为参数:

例如:root@10.88.77.77.

python ssh scp

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

如何使用 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
查看次数

如何在python代码中执行ssh和scp等效函数

我想登录网络中的不同机器,并将该机器中的文件复制到我的机器上.我想用python做这个.任何想法我怎么能这样做.我有python 2.5和ubuntu 8.10

python ssh automation scp

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