一.基于SFTPClient类连接sshd服务器:
特点: 一般用于实现对远程服务器的上传, 下载和对远程目录文件的操作
import pramiko hostname = '172.24.0.110'
username = 'carl'
password = ''
port = 22
remote_dir = '/data/sftp/'
local_dir = '/data/DownloadData'
try:
trans = paramiko.Transport((host, port))
trans.connect(username=username, password=password)
sftp = paramiko.SFTPClient.from_transport(trans)
# 下载文件
sftp.get(remote_dir, local_dir)
#上传文件
sftp.put(remote_dir, local_dir)
# 打印目录列表
print(sftp.listdir('/home'))
except Exception e:
print(str(e))
二.通过SSHClient类连接
特点: SSHClient类是SSH服务会话的高级表示,封装了传输、通道以及SFTPClient的校验、建立方法,通常用于执行命令
import paramiko
hostname = '172.24.0.110'
username = 'carl'
password = ''
# 创建一个SSH客户端client对象
ssh = paramiko.SSHClient()
# 获取客户端host_keys,默认~/.ssh/known_hosts, 非默认路径需指定
ssh.load_host_keys()
# 创建ssh连接
ssh.connect(hostname=hostname, username=username, password = password)
# 调用远程执行命令的方法
stdin, stdout, stderr = ssh.exec_command('cd /data/sftp')
# 打印命令执行结果, 得到python列表形式
# print(stdout.read())
print(stdout.readlines())
# 关闭ssh连接
ssh.close()
github地址: https://github.com/haha479/Note/blob/master/learning_module/ftplibAndparamiko.txt