远程操作云主机
2019-09-25 本文已影响0人
魔曦帝天
Paramiko 是用于实现执行远程命令和远程传输文件
pip3 install paramiko 安装paramiko模块
公匙密匙俩连接
import paramiko
# 创建SSH对象
ssh = paramiko.SSHClient()
# 信任对方的公钥
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 创建一个自己当前用户的私钥对象
private_key = paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa')
# private_key = paramiko.ECDSAKey.from_private_key_file('/root/.ssh/id_ecdsa')
# 连接服务器
ssh.connect(hostname='10.0.122.124', port=22,
username='stus', # 服务器端的用户
pkey=private_key # 本地用户的私钥对象
)
# 执行命令,#用三个值接受 命令的返回值
stdin, stdout, stderr = ssh.exec_command('df /')
# 获取stdout结果
result = str(stdout.read(), encoding='utf-8')
# 关闭连接
ssh.close()
print(result)
文件上传下载
import paramiko
private_key = paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa')
# private_key = paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa')
# 创建一个传输对象
transport = paramiko.Transport(('10.0.122.124',22))
# 使用刚才的传输对象创建一个传输文件的的连接对象
transport.connect(username='stus', pkey=private_key)
sftp = paramiko.SFTPClient.from_transport(transport)
#将/root/kulong.txt上传到远程主机/home/stus/kulong.txt
sftp.put('/root/kulong.txt','/home/stus/kulong.txt')
# 将远程主机的文件 /tmp/test.py 下载到本地并命名为 some.py
sftp.get('/tmp/回顾.txt', 'some.txt')
transport.close()