paramiko问题
手动上传我会使用winSCP连接 但是每天重复上传文件很累想使用python的模块每天定时上传
但是winSCP是使用了代理服务器才能成功连接。
基础信息
IP:206.19.222.8
账号:admin
密码:无
秘钥地址:D:\jax\id_rsa
基于一些安全或其他原因公司需要填写代理才能连接到对方服务器 图如下
那么我在代码里面该怎么改写呢?或者有其他模块以及代码能实现,麻烦各位师傅告知,感激不尽!
基础命令连接方式代码
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()