# 通过密码构建连接
def transportPasswordFactory(ip, password, port, username):
try:
transport = paramiko.Transport((ip, port))
transport.connect(username=username, password=password)
return transport
except Exception:
print('transportPasswordFactory %s@%s: %s' % (username, ip, Exception))
# 构建sftp对象
def sftpFactory(transport):
sftp = paramiko.SFTPClient.from_transport(transport)
return sftp
def pull_file_to_local(ip, port, username, password, remote_file, location_file):
"""
基于密码ssh 下载
:param ip: 目标服务器IP
:param port: 端口
:param username: 用户名
:param password: 密码
:param remote_file: 远端文件路径
:param location_file: 本地文件路径
:return:
"""
try:
transport = transportPasswordFactory(ip, password, port, username)
if transport is not None:
sftp = sftpFactory(transport)
getFile(remote_file, location_file, sftp)
transport.close()
except Exception as e:
logging.error("pull_file_to_local error : %s" % str(e))