import paramiko
# 实例化出一个ssh对象
ssh_obj = paramiko.SSHClient()
ssh_obj.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 允许添加不在konw_hosts中的主机
# 用该对象去连接server并执行命令
ssh_obj.connect(hostname=‘192.168.10.202‘, port=22, username=‘root‘, password=‘redhat‘)
stdin, stdout, stderr = ssh_obj.exec_command(‘df‘)
data = stdout.read().decode()
if not data:
data = stderr.read().decode() # 因为管道中内容读完就没有了,所以不能用三元运算
print(data)
# 关闭连接
ssh_obj.close()
import paramiko
# 重新给 transport 字段赋值
transport = paramiko.Transport((‘192.168.10.202‘, 22))
transport.connect(username=‘root‘, password=‘redhat‘)
# 更改该 ssh obj对象的_transport字段(创建链接并执行命令)
ssh_obj = paramiko.SSHClient()
ssh_obj._transport = transport
stdin, stdout, stderror = ssh_obj.exec_command(‘df‘)
data = stdout.read().decode()
if not data:
data = stderror.read().decode()
print(data)
transport.close()
import paramiko
import os
import sys
root = os.path.dirname(os.path.abspath(‘__file__‘))
sys.path.append(root)
private_key = os.path.join(root, ‘id_rsa‘)
# 创建一个ssh 对象, 并执行命令
ssh_obj = paramiko.SSHClient()
ssh_obj.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_obj.connect(hostname=‘192.168.10.202‘, port=22, username=‘root‘, key_filename=private_key)
stdin, stdout, stderror = ssh_obj.exec_command(‘df‘)
data = stdout.read().decode()
ssh_obj.close()
if not data:
data = stderror.read().decode()
print(data)
import paramiko
import os
import sys
root = os.path.dirname(os.path.abspath(‘__file__‘))
sys.path.append(root)
sec_key = paramiko.RSAKey.from_private_key_file(os.path.join(root, ‘id_rsa‘))
# 创建一个transport传输通道, 并指定连接参数
transport = paramiko.Transport((‘192.168.10.202‘, 22))
transport.connect(username=‘root‘, pkey=sec_key)
# 更改ssh 对象的使用创建的传输通道
ssh_obj = paramiko.SSHClient()
ssh_obj._transport = transport
# 执行命令,获取结果
stdin, stdout, stderror = ssh_obj.exec_command(‘ls‘)
data = stdout.read().decode()
transport.close()
if not data:
data = stderror.read().decode()
print(data)
import paramiko
# 定义通道,指定连接参数
transport = paramiko.Transport((‘192.168.10.202‘, 22))
transport.connect(username=‘root‘, password=‘redhat‘)
# 创建链接
sftp = paramiko.SFTPClient.from_transport(transport)
# 传输文件,文件存在则覆盖,不存在则创建
sftp.put(‘s1.py‘, ‘/usr/local/src/s1.py‘) # y一定要指定scp过去的文件名称,否则报错
sftp.put(‘s1.py‘, ‘/usr/local/src/test.py‘)
transport.close()
import paramiko
import os
import sys
root = os.path.dirname(os.path.abspath(‘__file__‘))
sys.path.append(root)
sec_key = paramiko.RSAKey.from_private_key_file(os.path.join(root, ‘id_rsa‘))
# 定义通道,指定连接参数
transport = paramiko.Transport((‘192.168.10.202‘, 22))
transport.connect(username=‘root‘, pkey=sec_key)
# 创建链接
sftp = paramiko.SFTPClient.from_transport(transport)
# 传输文件,文件存在则覆盖,不存在则创建
sftp.put(‘s1.py‘, ‘/usr/local/src/qiao1.py‘) # y一定要指定scp过去的文件名称,否则报错
sftp.put(‘s1.py‘, ‘/usr/local/src/qiao2.py‘)
transport.close()
原文:http://www.cnblogs.com/qiaogy/p/6295681.html