本文介绍: 当使用 RSA 私钥进行 SSH 认证时,你可以通过paramiko的RSAKey加载私钥,并用其创建 SSH 隧道

使用 RSA 私钥进行 SSH 认证时,你可以通过 paramikoRSAKey加载私钥,并用其创建 SSH 隧道。以下是修改后的代码示例使用 RSA 私钥进行 SSH 连接

示例代码

import paramiko
from paramiko import RSAKey
from sshtunnel import SSHTunnelForwarder
import redis
import logging

# 设置日志记录
logging.basicConfig(level=logging.DEBUG)

# SSH 跳板机参数
SSH_HOST = 'XXXXX'
SSH_PORT = 46379
SSH_USERNAME = 'test_ai'
SSH_PRIVATE_KEY_PATH = '/home/sunyuhua/桌面/id_rsa'

# Redis 服务器参数
REDIS_HOST = '172.16.0.187'
REDIS_PORT = 6379
REDIS_PASSWORD = 'Shgbit@2023'

# 尝试使用不同本地端口
LOCAL_PORT = 9091  # 更改不同端口

# 加载私钥
my_rsa_key = paramiko.RSAKey.from_private_key_file(SSH_PRIVATE_KEY_PATH)

try:
    # 设置 SSH 隧道
    with SSHTunnelForwarder(
            (SSH_HOST, SSH_PORT),
            ssh_username=SSH_USERNAME,
            ssh_pkey=my_rsa_key,
            remote_bind_address=(REDIS_HOST, REDIS_PORT),
            local_bind_address=('127.0.0.1', LOCAL_PORT)) as tunnel:

        # 等待 SSH 隧道建立
        tunnel.start()

        # 连接到 Redis
        redis_client = redis.StrictRedis(host='127.0.0.1', port=tunnel.local_bind_port, password=REDIS_PASSWORD, decode_responses=True)

        # 测试 Redis 命令
        print(redis_client.ping())

        # 等待使用
        # 这里可以添加你的 Redis 交互代码

        # 关闭隧道
        tunnel.stop()

except Exception as e:
    print(f"发生错误: {e}")

注意事项

使用 RSA 私钥进行 SSH 连接是一种更安全的认证方式,特别是在生产环境中。确保妥善保管你的私钥,并定期更新以维持系统安全性

原文地址:https://blog.csdn.net/sunyuhua_keyboard/article/details/134690926

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_32238.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注