<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>ssh on SecDoc</title>
    <link>https://secdoc.jazor.net/tags/ssh/</link>
    <description>Recent content in ssh on SecDoc</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh-cn</language>
    <copyright>© 2026 黑豆子</copyright>
    <lastBuildDate>Sun, 03 May 2026 00:05:00 +0800</lastBuildDate><atom:link href="https://secdoc.jazor.net/tags/ssh/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>SSH Agent 转发配置与安全指南</title>
      <link>https://secdoc.jazor.net/posts/ssh-agent-forwarding-guide/</link>
      <pubDate>Sun, 03 May 2026 00:05:00 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/ssh-agent-forwarding-guide/</guid>
      <description>在日常开发和运维工作中，我们经常需要通过多台跳板机 SSH 到内网服务器。每次都需要在每台机器上配置密钥或者输入密码，非常麻烦。SSH Agent 转发（Agent Forwarding）正是解决这一问题的利器。
什么是 SSH Agent SSH Agent 是一个后台运行的程序（守护进程），它负责管理用户的私钥。当你使用 SSH 连接服务器时，SSH Agent 会自动提供私钥进行认证，无需每次都输入密码或指定密钥文件。
核心组件 ssh-agent：后台守护进程，启动后会在环境变量中设置 SSH_AUTH_SOCK ssh-add：用于将私钥添加到 agent 管理列表 工作原理 1 2 [本地主机] ----SSH 隧道----&amp;gt; [跳板机] ----SSH----&amp;gt; [目标服务器] (持有私钥) (转发请求) (验证签名) 当启用 Agent Forwarding 后，跳板机会作为代理，将服务器的认证请求转发回本地主机，由本地的 SSH Agent 完成签名验证。
配置步骤 第一步：启动 SSH Agent 1 2 3 4 5 6 # 启动 ssh-agent $ ssh-agent -s # 输出示例： # SSH_AUTH_SOCK=/tmp/ssh-XXXX/agent.259996; export SSH_AUTH_SOCK; # SSH_AGENT_PID=260133; export SSH_AGENT_PID; 第二步：添加私钥 1 2 3 4 5 6 7 # 将私钥添加到 agent $ ssh-add ~/.</description>
    </item>
    
    <item>
      <title>SSH 证书认证实战指南</title>
      <link>https://secdoc.jazor.net/posts/ssh-certificate-authentication-guide/</link>
      <pubDate>Wed, 29 Apr 2026 00:05:37 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/ssh-certificate-authentication-guide/</guid>
      <description>SSH 证书认证是一种比传统公钥认证更安全的方案。本文介绍 SSH 证书的工作原理和配置方法。
传统公钥认证的问题 传统的 SSH 公钥认证需要在每台服务器上添加用户的公钥：
1 2 # 用户将公钥发送到服务器 ssh-copy-id user@server 这种方式在大规模环境中存在以下问题：
密钥管理困难：新增或撤销用户需要手动更新所有服务器 无时效性：公钥永久有效，离职后难以撤销 无法追踪：无法知道谁在什么时候登录过 扩展性差：成百上千台服务器时维护成本极高 SSH 证书认证的原理 SSH 证书认证引入**证书颁发机构（CA）**的概念：
CA 密钥：管理员创建一个 CA 私钥，用于签发证书 用户证书：CA 使用私钥对用户公钥进行签名，生成证书 服务器信任 CA：服务器只需配置信任 CA 公钥，无需逐个添加用户公钥 证书验证：用户登录时提交证书，服务器通过 CA 公钥验证证书有效性 证书包含的信息 用户公钥 用户 ID（Key ID） 有效期（起始时间 + 结束时间） 允许的登录用户名（Principals） CA 签名 创建 SSH CA 首先创建 CA 密钥对。建议使用 ED25519 算法：
1 2 3 4 5 # 创建用户证书CA ssh-keygen -t ed25519 -f ~/.ssh/user_ca -C &amp;#34;SSH User CA&amp;#34; # 创建主机证书CA（可选，用于验证服务器身份） ssh-keygen -t ed25519 -f ~/.</description>
    </item>
    
    <item>
      <title>Ed25519 密钥算法详解</title>
      <link>https://secdoc.jazor.net/posts/ed25519-key-algorithm-guide/</link>
      <pubDate>Sun, 12 Apr 2026 00:05:00 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/ed25519-key-algorithm-guide/</guid>
      <description>Ed25519 是一种基于 EdDSA（Edwards-curve Digital Signature Algorithm）的数字签名算法，使用 Curve25519 椭圆曲线的变形 Ed25519。相比传统的 RSA 和 ECDSA，Ed25519 在安全性、性能和易用性上都有显著优势，已成为现代密码学的首选签名算法之一。
Ed25519 的核心优势 1. 密钥体积小 Ed25519 的密钥非常紧凑，公钥仅 32 字节，私钥 32 字节（种子）。这相比 RSA 2048 的 256 字节公钥和 1700+ 字节的私钥，存储和传输成本大幅降低。
公钥长度对比：
1 2 3 Ed25519 公钥: 82 字节（Base64 编码后） RSA 2048 公钥: 382 字节（Base64 编码后） ECDSA P-256 公钥: 162 字节（Base64 编码后） 2. 签名速度快 Ed25519 的签名和验证速度都非常快。其设计充分利用了现代 CPU 的特性，比 ECDSA 快约 3-5 倍，比 RSA 快得多。
3. 安全性高 128 位安全强度：等效于 RSA 3072 位或 AES-128 抗侧信道攻击：实现设计避免了时序攻击等侧信道风险 确定性签名：不需要随机数生成器，避免了 ECDSA 的随机数重用漏洞 4.</description>
    </item>
    
    <item>
      <title>SSH 配置文件详解</title>
      <link>https://secdoc.jazor.net/posts/ssh-config-file-guide/</link>
      <pubDate>Mon, 06 Apr 2026 00:00:00 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/ssh-config-file-guide/</guid>
      <description>每次 SSH 连接都要输入一长串参数？~/.ssh/config 配置文件可以简化连接命令，还能统一管理多个主机的配置。
配置文件位置 SSH 客户端配置按以下顺序读取（后读取的优先级更高）：
/etc/ssh/ssh_config — 系统全局配置 ~/.ssh/config — 用户个人配置 用户配置会覆盖全局配置中的同名选项。
基本语法 配置文件由多个 Host 块组成，每个块定义一组主机的配置：
1 2 3 4 5 6 Host 别名 选项1 值1 选项2 值2 Host 另一个别名 选项1 值1 注意：每行的缩进使用空格（通常 4 个空格或 1 个 Tab），不是必须但推荐。
常用配置选项 选项 说明 示例 HostName 实际主机名或 IP HostName 192.168.1.100 User 登录用户名 User admin Port SSH 端口 Port 2222 IdentityFile 指定私钥文件 IdentityFile ~/.ssh/id_ed25519 PreferredAuthentications 首选认证方式 PreferredAuthentications publickey ServerAliveInterval 心跳间隔秒数 ServerAliveInterval 60 ServerAliveCountMax 心跳失败次数上限 ServerAliveCountMax 3 ProxyJump 跳板机 ProxyJump bastion 实战示例 简化连接命令 不使用配置文件：</description>
    </item>
    
    <item>
      <title>SSH 密钥认证配置指南</title>
      <link>https://secdoc.jazor.net/posts/ssh-key-auth-setup/</link>
      <pubDate>Sat, 04 Apr 2026 00:00:00 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/ssh-key-auth-setup/</guid>
      <description>详细讲解 SSH 密钥认证的完整配置流程，包括密钥生成、公钥部署、配置优化等步骤。</description>
    </item>
    
    <item>
      <title>SSH ProxyJump：跳板机配置最佳实践</title>
      <link>https://secdoc.jazor.net/posts/ssh-proxyjump-configuration/</link>
      <pubDate>Thu, 02 Apr 2026 00:00:00 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/ssh-proxyjump-configuration/</guid>
      <description>详解 SSH ProxyJump 跳板机配置，包括命令行用法、SSH Config 配置、与 ProxyCommand 的对比。</description>
    </item>
    
    <item>
      <title>SSH 配置会话保持连接</title>
      <link>https://secdoc.jazor.net/posts/ssh-keepalive-configuration/</link>
      <pubDate>Wed, 01 Apr 2026 00:00:00 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/ssh-keepalive-configuration/</guid>
      <description>介绍如何配置 SSH 客户端和服务端的 keepalive 机制，防止 SSH 会话因空闲而断开。</description>
    </item>
    
    <item>
      <title>SSH 密钥类型选择与格式转换</title>
      <link>https://secdoc.jazor.net/posts/ssh-key-types-conversion/</link>
      <pubDate>Thu, 26 Mar 2026 00:00:00 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/ssh-key-types-conversion/</guid>
      <description>SSH 密钥认证比密码认证更安全、更方便。但面对多种密钥类型，应该如何选择？本文聚焦这个问题。
常见密钥类型对比 类型 密钥长度 安全性 性能 兼容性 ed25519 256位 极高 最快 OpenSSH 6.5+ rsa 4096位 高 较慢 广泛兼容 ecdsa 521位 高 快 较好 推荐：优先选择 Ed25519 Ed25519 是目前最推荐的 SSH 密钥类型：
安全性高：基于椭圆曲线，256位密钥相当于 RSA 3072位 性能优秀：签名和验证速度都很快 密钥简短：私钥仅 411 字节，公钥仅 98 字节 生成 Ed25519 密钥 1 ssh-keygen -t ed25519 -C &amp;#34;your_email@example.com&amp;#34; 输出示例：
1 2 3 4 5 Generating public/private ed25519 key pair. Your identification has been saved in test_key_ed25519 Your public key has been saved in test_key_ed25519.</description>
    </item>
    
    <item>
      <title>SSH 隧道实战：端口转发完全指南</title>
      <link>https://secdoc.jazor.net/posts/ssh-tunnel-port-forwarding/</link>
      <pubDate>Wed, 25 Mar 2026 00:00:00 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/ssh-tunnel-port-forwarding/</guid>
      <description>SSH 隧道（SSH Tunneling）是 SSH 协议最强大的功能之一，通过端口转发实现安全的网络通信。本文聚焦 SSH 隧道的三种模式，每个命令都可直接使用。
本地端口转发（Local Forward） 将远程服务的端口映射到本地，适合访问内网服务。
基本语法 1 ssh -L [本地地址:]本地端口:目标主机:目标端口 跳板机用户@跳板机地址 实战案例：访问内网数据库 场景：跳板机 192.168.1.100 可访问内网数据库 10.0.0.50:3306
1 2 3 4 5 # 将远程 MySQL 映射到本地 3307 ssh -L 3307:10.0.0.50:3306 user@192.168.1.100 # 然后本地连接 mysql -h 127.0.0.1 -P 3307 -u dbuser -p 绑定特定接口 1 2 3 4 5 # 仅本机访问（默认） ssh -L 3307:10.0.0.50:3306 user@192.168.1.100 # 允许其他机器访问（注意安全风险） ssh -L 0.0.0.0:3307:10.0.0.50:3306 user@192.168.1.100 后台运行 1 2 3 4 5 # -f 后台运行，-N 不执行远程命令 ssh -fNL 3307:10.</description>
    </item>
    
    <item>
      <title>SSH 安全加固完全指南：从基础到高级配置</title>
      <link>https://secdoc.jazor.net/posts/ssh-hardening-best-practices/</link>
      <pubDate>Tue, 24 Mar 2026 00:00:00 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/ssh-hardening-best-practices/</guid>
      <description>SSH（Secure Shell）是系统管理员最常用的远程访问协议，也是攻击者的首要目标。本文详细介绍 SSH 安全加固的各个层面，从基础配置到高级技巧，帮助你构建坚不可摧的 SSH 防线。
一、SSH 基础安全配置 sshd_config 核心配置 配置文件路径：/etc/ssh/sshd_config
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 # 禁用 root 登录 PermitRootLogin no # 禁用密码认证（强制密钥认证） PasswordAuthentication no PubkeyAuthentication yes # 禁用空密码 PermitEmptyPasswords no # 禁用 PAM（可选，提高安全性但可能影响某些认证方式） UsePAM no # 限制登录用户 AllowUsers admin deploy@192.168.1.0/24 # 或使用组 AllowGroups ssh-users # 设置登录超时（秒） LoginGraceTime 60 # 最大认证尝试次数 MaxAuthTries 3 # 限制会话数 MaxSessions 10 # 限制启动会话数（防止资源耗尽） MaxStartups 10:30:100 # 格式: start:rate:full # start: 开始拒绝前的未认证连接数 # rate: 拒绝概率增长速率 # full: 完全拒绝的连接数 修改默认端口 1 2 3 4 5 6 7 8 9 10 11 12 # 不要使用默认的 22 端口 Port 2222 # 或使用多个端口（便于过渡） Port 22 Port 2222 # 记得更新防火墙规则 ufw allow 2222/tcp # 或 firewall-cmd --add-port=2222/tcp --permanent firewall-cmd --reload 完整的安全配置示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 # /etc/ssh/sshd_config 安全加固版 # 网络设置 Port 2222 AddressFamily inet ListenAddress 0.</description>
    </item>
    
  </channel>
</rss>
