paramiko模块
paramiko 是堡垒机核心的环节
- 基于密码实现ssh
- 基于密钥实现ssh
- 基于密码实现ftp
- 基于密钥实现ftp
基于密码实现ssh
import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器 ssh.connect(hostname='192.168.1.101', port=57522, username='root', password='M5EdjP565GPF7hgf') # 执行命令 while True: cmd = input('>>> ') stdin, stdout, stderr = ssh.exec_command(cmd) # 获取命令结果 if not stdout: print(stderr.read().decode()) else: print(stdout.read().decode()) # 关闭连接 ssh.close()
基于密钥实现ssh
import paramiko # 指定密码的私钥的路径 private_key = paramiko.RSAKey.from_private_key_file('id_rsa') # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器 ssh.connect(hostname='192.168.1.100', port=57522, username='root', pkey=private_key) while True: # 执行命令 cmd = input('>>> ') stdin, stdout, stderr = ssh.exec_command(cmd) # 获取命令结果 if not stdout: print(stderr.read().decode()) else: print(stdout.read().decode()) # 关闭连接 ssh.close()
基于密码实现简单FTP功能
import paramiko transport = paramiko.Transport(('192.168.1.101', 57522)) transport.connect(username='root', password='M5EdjP565GPF7hgf') sftp = paramiko.SFTPClient.from_transport(transport) # 将location.py 上传至服务器 /tmp/test.py #sftp.put('C:\\Users\\cuix\\PycharmProjects\\old_boy\\day09\\paramiko_mod\\location.py', '/tmp/test.py') # 将/tmpremove_path/test.py 下载到本地 local_path (下面是windows的路径) sftp.get('/tmp/remove_path/test.py', 'C:\\Users\\cuix\\PycharmProjects\\old_boy\\day09\\paramiko_mod\\test.py) transport.close()
基于密钥实现简单FTP功能
import paramiko # 指定私钥文件路径 private_key = paramiko.RSAKey.from_private_key_file('id_rsa') # 创建连接主机 transport = paramiko.Transport((192.168.101', 57522)) # 创建认证 transport.connect(username='root', pkey=private_key) # 连接主机 sftp = paramiko.SFTPClient.from_transport(transport) # 将location.py 上传至服务器 /tmp/test.py # sftp.put('C:\\Users\\cuix\\PycharmProjects\\old_boy\\day09\\paramiko_mod\\id_rsa', '/root/test.123') # 将remove_path 下载到本地 local_path sftp.get('/tmp/remove_path/test.py', 'C:\\Users\\cuix\\PycharmProjects\\old_boy\\day09\\paramiko_mod\\test.py') transport.close()
浙公网安备 33010602011771号