簡單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'