paramiko
是一个用于在 Python 中进行 SSH 连接的库,它支持 SSH 客户端和服务器。通过 paramiko
,你可以编写 Python 脚本来执行远程服务器上的命令、传输文件等。
安装 paramiko
pip 安装 paramiko:
pip install paramiko
连接到远程服务器
import paramiko
# 创建 SSH 客户端
client = paramiko.SSHClient()
# 自动添加主机密钥(不安全,生产环境中应该验证主机密钥)
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接到远程服务器
hostname = 'your_remote_host'
port = 22 # 默认 SSH 端口
username = 'your_username'
password = 'your_password'
client.connect(hostname, port, username, password)
# 执行命令
stdin, stdout, stderr = client.exec_command('ls -l')
# 打印命令输出
print(stdout.read().decode())
# 关闭连接
client.close()
使用 SSH 密钥连接
import paramiko
# 创建 SSH 客户端
client = paramiko.SSHClient()
# 使用密钥文件连接
key_path = '/path/to/your/private/key'
private_key = paramiko.RSAKey(filename=key_path)
# 自动添加主机密钥
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接到远程服务器
hostname = 'your_remote_host'
port = 22 # 默认 SSH 端口
username = 'your_username'
client.connect(hostname, port, username, pkey=private_key)
# 执行命令...
# 关闭连接...
传输文件
import paramiko
# 创建 SSH 客户端
client = paramiko.SSHClient()
# 自动添加主机密钥
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接到远程服务器
hostname = 'your_remote_host'
port = 22 # 默认 SSH 端口
username = 'your_username'
password = 'your_password'
client.connect(hostname, port, username, password)
# 创建 SFTP 客户端
sftp = client.open_sftp()
# 上传文件
local_path = 'local_file.txt'
remote_path = 'remote_directory/remote_file.txt'
sftp.put(local_path, remote_path)
# 下载文件
local_path_download = 'local_file_downloaded.txt'
remote_path_download = 'remote_directory/remote_file.txt'
sftp.get(remote_path_download, local_path_download)
# 关闭 SFTP 客户端
sftp.close()
# 关闭 SSH 客户端
client.close()
请注意,以上示例中的密码和密钥应该以安全的方式进行管理,不建议直接在代码中硬编码。在生产环境中,应该考虑使用配置文件、环境变量或密钥管理工具来安全地存储这些信息。
No Comments