发送命令

# -*- coding: utf-8 -*-

import  paramiko
'''
paramiko 模块可以用了向linux执行命令和发送接收文件
'''


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

#允许连接不在know_hosts文件的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddpolicy)

#连接服务器
ssh.connect(hostname='16.17.101.33',port=22,username='root',password = '123')

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

#获取命令结果
res = stdout.read()


#关闭连接
ssh.close()

 

发送文件:

# -*- coding: utf-8 -*-

import  paramiko

tran  = paramiko.transport(('hostname',22))
tran.connect(username='root',password='123')
sftp = paramiko.SFTPClient.from_transport(tran)
#将test.py 上传至 /tmp/test_new.py
sftp.put('/tmp/test.py','/tmp/test_new.py')


#将远程文件下载到本地
sftp.get('远程文件路径','本地路径')
tran.close()

 

 

 

使用秘钥登录:

# -*- coding: utf-8 -*-

'''
使用公钥的方式进行用户登录
'''

import paramiko

#这个路径是一个本地存储公钥的路径
private_key = paramiko.RSAKey.from_private_key_file('/home/root/.ssh/id_rsa')

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

#允许连接不在know_hosts 文件的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

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

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

#获取命令结果
res = stdout.read()


#关闭连接
ssh.close()