qq304999574 2022-08-18 14:37 采纳率: 0%
浏览 100
已结题

paramiko如何使用代理服务器上传文件到对方服务器?

paramiko问题

手动上传我会使用winSCP连接 但是每天重复上传文件很累想使用python的模块每天定时上传
但是winSCP是使用了代理服务器才能成功连接。

基础信息

IP:206.19.222.8
账号:admin
密码:无
秘钥地址:D:\jax\id_rsa

img

基于一些安全或其他原因公司需要填写代理才能连接到对方服务器 图如下

img

那么我在代码里面该怎么改写呢?或者有其他模块以及代码能实现,麻烦各位师傅告知,感激不尽!

基础命令连接方式代码

import paramiko
private_key_path=r'D:\jax\id_rsa' # 私钥地址

 # 读取本地私钥
 private_key = paramiko.RSAKey.from_private_key_file(private_key_path)

# 创建SSH对象
ssh = paramiko.SSHClient()

# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 连接服务器
ssh.connect(hostname='206.19.222.8', port=22, username='admin', pkey=private_key)

# 执行命令
stdin, stdout, stderr = ssh.exec_command('ls /')

# 获取命令结果
result = stdout.read()
print(result.decode('utf-8'))

# 关闭连接
ssh.close()

基础文件上传方式代码

import paramiko
localpath=r"D:\jax\ABC.text" #本机文件路径
private_key_path=r'D:\jax\id_rsa' # 私钥地址

 # 读取本地私钥
private_key = paramiko.RSAKey.from_private_key_file(private_key_path)

# 连接并创建sftp对象
tran = paramiko.Transport(('206.19.222.8', 22))
tran.connect(username="admin", pkey=private_key)
sftp = paramiko.SFTPClient.from_transport(tran)

#远程地址
remotepath = "/upload/" + file_name  

# 上传
sftp.put(localpath, remotepath)

#关闭连接
tran.close()
  • 写回答

4条回答 默认 最新

  • 快乐骑行^_^ 大数据领域新星创作者 2022-08-18 15:27
    关注

    是想实现下面的需求么?我应该能搞定
    1.定时把本地文件上传到代理服务器
    2.从代理服务器同步文件到目标服务器

    评论

报告相同问题?

问题事件

  • 系统已结题 8月26日
  • 修改了问题 8月18日
  • 创建了问题 8月18日

悬赏问题

  • ¥15 单纯型python实现编译报错
  • ¥15 c++2013读写oracle
  • ¥15 c++ gmssl sm2验签demo
  • ¥15 关于模的完全剩余系(关键词-数学方法)
  • ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音