paramiko 模块可以进行远程连接服务器(比如通过windows操作linux),支持ssh协议。需单独安装
安装
pip install paramiko
使用
该模块支持的远程连接到服务器的方式有很多,这里仅使用最常见的ssh连接的方式。
示例代码
import paramiko
# 创建一个ssh的客户端,用来连接服务器
ssh = paramiko.SSHClient()
# 创建一个ssh的白名单
know_host = paramiko.AutoAddPolicy()
#加载创建的白名单
ssh.set_missing_host_key_policy(know_host)
# 连接服务器
ssh.connect(
hostname=ip,
port=22,
username=username,
password=password
)
# 执行基本命令,一般的原生命令均可以使用。为字符串
stdin,stdout,stderr = ssh.exec_command("ls")
time.sleep(5)
# stdin 标准格式的输入,是一个写权限的文件对象
# stdout 标准格式的输出,是一个读权限的文件对象
# stderr 标准格式的错误,是一个写权限的文件对象
print(stdout.read().decode())
#使用完之后需要进行通道的关闭
ssh.close()
连接方式的介绍
远程主机没有本地主机密钥或HostKeys
对象时的连接方法,需要配置set_missing_host_key_policy(policy)
。参数常见取值有3种,分别如下:
AutoAddPolicy
:自动添加主机名及主机密钥到本地的known_hosts
,不依赖load_system_host_key
的配置。即新建立ssh连接时不需要再输入yes或no进行确认。最为常用。WarningPolicy
用于记录一个未知的主机密钥的python
警告。并接受,功能上和AutoAddPolicy
类似,但是会提示是新连接。RejectPolicy
自动拒绝未知的主机名和密钥,依赖load_system_host_key
的配置。此为默认选项
原文链接:https://blog.csdn.net/zangba9624/article/details/118398648