paramiko:实现ssh协议,对linux服务器资源的访问
介绍
paramiko包含两大核心组件:SSHClient和SFTPClient
SSHClient的使用
import paramiko # 实例化SSHClient client = paramiko.SSHClient() # 自动添加策略,保存服务器的主机名和密钥信息,如果不添加,那么不再本地know_hosts文件中记录的主机将无法连接 client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接SSH服务端,以用户名和密码进行认证 client.connect(hostname='47.94.174.89',port=22,username='root',password='zgdasdas223') # 打开一个Channel并执行命令 stdin,stdout,stderr = client.exec_command('ls / ') # stdout 为正确输出,stderr为错误输出,同时是有1个变量有值 # 打印执行结果 print(stdout.read().decode('utf-8')) """ bin boot dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var """ # 关闭SSHClient client.close() import paramiko # 实例化SSHClient client = paramiko.SSHClient() # 自动添加策略,保存服务器的主机名和密钥信息,如果不添加,那么不再本地know_hosts文件中记录的主机将无法连接 client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接SSH服务端,以用户名和密码进行认证 client.connect(hostname='47.94.174.89',password='zggdsadsa13') # 打开一个Channel并执行命令 stdin,stderr = client.exec_command('dsadasdasdas ') # stdout 为正确输出,stderr为错误输出,同时是有1个变量有值 # 打印执行结果 print(stderr.read().decode('utf-8')) """ bash: dsadasdasdas: command not found """ # 关闭SSHClient client.close() SFTPClient的使用
from_transport(cls,t) 创建一个已连通的SFTP客户端通道 put(localpath,remotepath,callback=None,confirm=True) 将本地文件上传到服务器 参数confirm:是否调用stat()方法检查文件状态,返回ls -l的结果 get(remotepath,localpath,callback=None) 从服务器下载文件到本地 mkdir() 在服务器上创建目录 remove() 在服务器上删除目录 rename() 在服务器上重命名目录 stat() 查看服务器文件状态 listdir() 列出服务器目录下的文件 import paramiko # 获取transport实例 transport = paramiko.Transport(("47.94.174.89",22)) # 连接ssh,通过username和password transport.connect(username="root",password="dasdsadas3") # 获取SFTP实例 sftp = paramiko.SFTPClient.from_transport(transport) # 执行下载文件 sftp.get("/root/dockerfile","dockerfile") # 执行上传文件 sftp.put("1.py","/root/11.py") transport.close() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |