paramiko是SSH协议的python实现,paramiko可以在Python代码中直接使用SSH协议对远程服务器执行操作,而不是调用ssh命令对远程服务器进行操作。
安装
sudo pip install paramiko
python -c "import paramiko"
SSHClient类与SFTPClient类
paramiko包含两个核心组件,分别是SSHClient和SFTPClient,前者的作用对应于Linux下的ssh命令,后者的作用对应于Linux下的sftp命令。
- SSHClient类是对SSH会话的封装,该类封装了传输(transport)、通道(channel)及SFTPClient建立的方法(open_sftp),通常用于执行远程命令。SSHClient类的常用方法有以下几个:
- connect() - 实现远程服务器的连接与认证,hostname是必传的参数
connect(self, hostname, port=22, username=None, password=None, pkey=None, key_filename=None, timeout=None, allow_agent=True, look_for_keys=True, compress=False)
-
set_missing_host_key_policy() - 设置远程服务器没有记录在本地know_hosts文件中时的应对策略。目前支持三种策略,分别是
- AutoAddPolicy - 自动添加服务器到know_hosts文件
- RejectPolicy - 拒绝本次连接(默认策略)与
- WarningPolicy - 警告并将服务器添加到know_hosts文件中
-
exec_command() - 在远程服务器上执行Linux命令的方法
-
open_sftp() - 在当前ssh会话的基础上创建一个sftp会话。该方法会返回一个SFTPClient对象。
- SFTPClient类是对SFTP客户端的封装,用以实现远程文件操作,如文件上传、下载、修改文件权限等操作。SFTPClient类常用的方法有以下几个:
- put():上传本地文件到远程服务器;
- get():从远程服务器下载文件到本地;
- mkdir():在远程服务器上创建目录;
- remove():删除远程服务器中的文件;
- rmdir():删除远程服务器中的目录;
- rename():重命名远程服务器中的文件或目录;
- stat():获取远程服务器中文件的详细信息;
- listdir():列出远程服务器中指定目录下的内容;
网友评论