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