首先是这个模块的第一个应用
SSH客户端
这里通过一段代码来简单了解
import paramiko
# 实例化一个ssh客户端对象
ssh = paramiko.SSHClient()
# 自动在know_host中添加自己要连的机器,忽略这个验证,注意传入的参数paramiko.AutoAddPolicy()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接信息
ssh.connect(hostname='hostadresss', port=22, username='root', password='password')
# 传输命令,这里有三个返回值,按顺序第一个是标准输入,即你输入的命令,第二个标准输出,即命令返回值
# 第三个标准错误,报错的时候会返回给这个值,同时返回值不是固定而是变化的时候也会返回给这个值一个错误
stdin, stdout, stderr = ssh.exec_command('pwd')
# 读取输出
result = stdout.read()
# 打印输出
print(result)
# 关闭客户端
ssh.close()
这里要注意的就是连接时的验证和发送命令时的三个返回值
还有第二个版本使用私钥登陆(功能就是多)
import paramiko
# 声明私钥文件路径
private_key = paramiko.RSAKey.from_private_key_file('id_rsa')
# 生成ssh客户端实例
ssh = paramiko.SSHClient()
# 通过公共方式进行认证(不需要在known_hosts文件中存在)
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器声明私钥
ssh.connect(hostname='45.32.131.167', port=22, username='root', pkey=private_key)
# 获得返回值
stdin, stdout, stderr = ssh.exec_command('pwd')
# 读
result = stdout.read()
# 打印
print(result)
# 关闭实例
ssh.close()
这个使用前不要忘了配置服务器端的ssh,要允许密钥登陆
然后是第二个应用
SFTP客户端
import paramiko
# 生成Transport实例传入ip和端口
transport = paramiko.Transport(('hostname', 22))
# 传入用户名密码连接
transport.connect(username='root', password='123')
# 生成SFTPClient实例传入上面连接后的实例
sftp = paramiko.SFTPClient.from_transport(transport)
# 上传文件
sftp.put('put_file_path', 'server_path')
# 下载文件
sftp.get('download_file_path', 'local_path')
# 关闭实例
transport.close()
这里要注意的是SFTP实例并不是一步创建的
转载请注明出处
python自学技术互助扣扣群:670402334