Cet article partage principalement le matériel d'apprentissage du module python paramiko avec tout le monde. Il a une certaine valeur de référence. Les amis intéressés peuvent s'y référer
paramiko est un module écrit en langage python. cryptage et authentification pour se connecter aux serveurs distants. paramiko prend en charge Linux, Solaris, BSD, MacOS X, Windows et d'autres plates-formes pour se connecter d'une plate-forme à une autre via SSH. En utilisant ce module, vous pouvez facilement effectuer une connexion ssh et le protocole sftp pour le transfert de fichiers sftp.
Plarifions d'abord les noms suivants :
SSHClient : packages Channel, Transport, SFTPClient
Channel : est un type Socket, un canal de transmission SSH sécurisé
Transport : est une session cryptée (mais la session d'un tel objet n'a pas été établie), et crée un tunnel crypté C'est ce qu'on appelle Channel ;
Session : est l'objet qui maintient la connexion entre le client et le serveur. Utilisez connect()/start_client()/start_server() pour démarrer la session.
Télécharger et installez
pip3 install paramiko
SSHClient :
Les connexions à distance sont divisées en deux types : (1) connexion basée sur le nom d'utilisateur et le mot de passe (2) connexion basée sur clé publiqueEn utilisant paramiko pour le fonctionnement à distance, il existe essentiellement deux types : (1) Utilisez uniquement SSHClient (2) Créez vous-même un transport Connectez-vous en fonction du nom d'utilisateur et du mot de passeimport paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器 ssh.connect(hostname='host', port=22, username='root', password='123') # 执行命令 stdout命令结果,stderr错误 stdin, stdout, stderr = ssh.exec_command('ls') # 获取命令结果 result = stdout.read() # 关闭连接 ssh.close()
import paramiko transport = paramiko.Transport(('hostname', 22)) transport.connect(username='root', password='123') ssh = paramiko.SSHClient() ssh._transport = transport stdin, stdout, stderr = ssh.exec_command('df') print(stdout.read()) transport.close()
import paramiko private_key = paramiko.RSAKey.from_private_key_file('/home/auto/.ssh/id_rsa') # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器 ssh.connect(hostname='host', port=22, username='root', key=private_key) # 执行命令 stdin, stdout, stderr = ssh.exec_command('df') # 获取命令结果 result = stdout.read() # 关闭连接 ssh.close()
import paramiko private_key = paramiko.RSAKey.from_private_key_file('/home/auto/.ssh/id_rsa') transport = paramiko.Transport(('hostname', 22)) transport.connect(username='wupeiqi', pkey=private_key) ssh = paramiko.SSHClient() ssh._transport = transport stdin, stdout, stderr = ssh.exec_command('df') transport.close()
SFTPClient :
est utilisé Connectez-vous au serveur distant et effectuez les fonctions de téléchargement et de téléchargement. Téléchargement et téléchargement basés sur le nom d'utilisateur et le mot de passeimport paramiko transport = paramiko.Transport(('hostname',22)) transport.connect(username='root',password='123') sftp = paramiko.SFTPClient.from_transport(transport) # 将location.py 上传至服务器 /tmp/test.py sftp.put('/tmp/location.py', '/tmp/test.py') # 将remove_path 下载到本地 local_path sftp.get('remove_path', 'local_path') transport.close()
import paramiko private_key = paramiko.RSAKey.from_private_key_file('/home/auto/.ssh/id_rsa') transport = paramiko.Transport(('hostname', 22)) transport.connect(username='root', pkey=private_key ) sftp = paramiko.SFTPClient.from_transport(transport) # 将location.py 上传至服务器 /tmp/test.py sftp.put('/tmp/location.py', '/tmp/test.py') # 将remove_path 下载到本地 local_path sftp.get('remove_path', 'local_path') transport.close()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!