链条传动

砥砺前行,不忘初心!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
http://www.cnblogs.com/wupeiqi/articles/5699254.html

paramiko:基于SSH用于连接远程服务器并执行相关操作

paramiko常用的2个模块:
SSHClient:用于远程连接服务器,并执行基本命令
SFTPClient:用于远程连接服务器,并执行上传下载
"""

"""
# 通过用户名密码连接服务器
import paramiko

# # 创建ssh对象
# ssh = paramiko.SSHClient()
#
# # 允许连接不在know_hosts文件中的主机(不在know_hosts文件中的主机每次连接都会询问是否连接,该操作可实现自动应答允许连接)
# ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#
# # 连接服务器
# ssh.connect(hostname='192.168.1.22', port=22, username='root', password='123456')
#
# # 执行命令
# stdin, stdout, stderr = ssh.exec_command('ls -l')
#
# # 获取命令返回结果
# result = stdout.read()
# print(str(result, encoding='utf-8'))
#
# # 关闭连接
# ssh.close()


# SSHClient内部连接服务器是调用的是Transport对象,我们也可以不用SSHClient,自己创建一个transport方法来实现连接
transport = paramiko.Transport(('192.168.1.22', 22))   # 创建Transport对象
transport.connect(username='root', password='123456')   # 使用transport对象连接服务器

ssh = paramiko.SSHClient()  # 创建ssh对象,使用ssh来发送命令
ssh._transport = transport  # 将transport对象赋给ssh的_transport字段,让ssh对象能够向transport对象连接的服务器发送命令

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

# 获取命令返回结果
result = stdout.read()
print(str(result, encoding='utf-8'))

# 关闭连接
transport.close()
"""

# 通过密钥连接服务器
import paramiko

# 密钥文件
privat_key = paramiko.RSAKey.from_private_key_file('id_rsa')

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

# 运行非hnown hosts文件中的主机进行连接
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 连接服务器
ssh.connect(hostname='192.168.1.22', port=22, username='root', pkey=privat_key)

# 执行命令
stdin, stdout, stderr = ssh.exec_command('ls -h')
# 获取命令返回结果
print(str(stdout.read()))

# 关闭连接
ssh.close()



# # SSHClient内部连接服务器是调用的是Transport对象,我们也可以不用SSHClient,自己创建一个transport方法来实现连接
#
# private_key = paramiko.RSAKey.from_private_key_file('/home/auto/.ssh/id_rsa')
#
# transport = paramiko.Transport(('192.168.1.22', 22))   # 创建Transport对象
# transport.connect(username='root', pkey=privat_key)   # 使用transport对象连接服务器
#
# ssh = paramiko.SSHClient()  # 创建ssh对象,使用ssh来发送命令
# ssh._transport = transport  # 将transport对象赋给ssh的_transport字段,让ssh对象能够向transport对象连接的服务器发送命令
#
# # 执行命令
# stdin, stdout, stderr = ssh.exec_command('ls -l')
#
# # 获取命令返回结果
# result = stdout.read()
# print(str(result, encoding='utf-8'))
#
# # 关闭连接
# transport.close()

 

#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
http://www.cnblogs.com/wupeiqi/articles/5699254.html

"""
# SFTPClient

import paramiko

transport = paramiko.Transport(('192.168.1.22', 22))  # 创建transport对象
transport.connect(username='root', password='123456')  # 使用用户名密码连接
# 使用密钥连接服务器
# private_key = paramiko.RSAKey.from_private_key_file('/home/auto/.ssh/id_rsa')
# transport.connect(username='root', pkey=privat_key)   # 使用transport对象连接服务器

sftp = paramiko.SFTP.from_transport(transport)   # 创建sftp对象,并传入transport对象

# 将location.py 上传至服务器 /tmp/test.py
sftp.put('/tmp/location.py', '/tmp/test.py')
# 将remove_path 下载到本地 local_path
sftp.get('remove_path', 'local_path')

transport.close()  # 关闭连接

 

posted on 2016-12-02 15:02  链条君  阅读(179)  评论(0编辑  收藏  举报