paramiko 实现ssh登录和sftp登录


简单ssh登录

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='192.168.80.200',port=22,username='root',password='123')
stdin,stdout,stderr = ssh.exec_command('df;top')
res = stdout.read()+stderr.read()
print(res.decode())
#密钥存放于代码中方式

key_str = '''-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEA1v/Cy/1A6aUvP49THyvfYSYPPw+KAE1RwoyN1EHy2Ul1XZl2
.
.
.
ShbMOCp5tEvMBhVnFGBBniqALVEaUy2j9dG53kBxVyABJh3DdaI=
-----END RSA PRIVATE KEY-----'''

private_str = paramiko.RSAKey(file_obj=StringIO(key_str))
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('192.168.80.200',22,'root',pkey=private_str)
stdin,stdout,stderr = ssh.exec_command('echo $PATH')
print(stdout.read().decode())

 

#以下是密钥方式

import paramiko

private_key = paramiko.RSAKey.from_private_key_file("C:\\a\\a.rsa",'123')    #没有密钥密码可以不用加“,‘123’”
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect(hostname='192.168.200.48',port=22,username='root',pkey=private_key)
stdin,stdout,stderr = ssh.exec_command('df;top')
res = stdout.read()+stderr.read()
print(res.decode())

  

 

简单sftp登录

import paramiko

transport = paramiko.Transport(('192.168.80.200',22))
transport.connect(username='root',password='123')

sftp = paramiko.SFTPClient.from_transport(transport)

sftp.get('/root/1','2')
sftp.put('test.py','/root/3')

密钥方式SFTP

#以下是密钥方式
import paramiko
private_key = paramiko.RSAKey.from_private_key_file("C:\\a\\a.rsa",'123')

transport = paramiko.Transport(('192.168.200.48',22))
transport.connect(username='root',pkey=private_key)

sftp = paramiko.SFTPClient.from_transport(transport)

sftp.get('/home/aa/1','2')
sftp.put('test.py','/home/aa/3'

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM