0Pricing
Linux Server Deployment & SSH Mastery · 课时

SSH 代理与多跳连接

利用 SSH 代理无缝管理密钥,并配置多跳 SSH 连接以访问深层嵌套的网络

SSH 代理与多跳连接 是 CoddyKit 上的免费 Linux Server Deployment & SSH Mastery 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Linux Server Deployment & SSH Mastery 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Linux Server Deployment & SSH Mastery 课程共包含 4 节课。

SSH 代理:便捷连接的关键

每次连接服务器都要输入 SSH 密钥的口令,是否让您感到厌烦?SSH 代理可以帮助您!

  • 它是一个在后台运行、能够安全存储私钥的程序。
  • 每个会话只需使用口令解锁一次密钥。
  • 这样一来,您无需反复输入口令就能连接到多台服务器,同时提高便利性和安全性。

启动 SSH 代理

添加密钥之前,需要先启动 SSH 代理。它通常作为后台进程运行。

您可以使用以下命令启动代理,并设置 shell 以使用它:

eval "$(ssh-agent -s)"

向代理添加密钥

代理运行后,您就可以将私钥添加到其中。ssh-add 命令可以完成此操作:

  • 它会提示您输入密钥的口令。
  • 密钥会一直保持加载状态,直到代理停止运行或您明确将其移除。

要查看当前加载了哪些密钥,请使用 ssh-add -l。

ssh-add ~/.ssh/id_rsa
ssh-add -l

代理转发:概念

有时,您需要使用本地 SSH 密钥从一台服务器(服务器 A)连接到另一台服务器(服务器 B),但又不想将密钥存储在服务器 A 上。

代理转发允许本地 SSH 代理处理从远程服务器发起的连接所需的身份验证。您可以把它理解为将本地代理临时延伸到远程主机。

使用代理转发

要启用代理转发,只需在连接第一台服务器(跳板主机)时添加 -A 标志。

然后,您可以从跳板主机使用本地密钥连接到另一台服务器,而无需将密钥存储在跳板主机上。这是一项强大的安全功能!

ssh -A user@jump_host
# Now, from jump_host, connect to target_server
ssh user@target_server

多跳 SSH:访问深层网络

如果您的目标服务器无法从本地计算机直接访问,而只能通过中间服务器(“跳转主机”)访问,该怎么办?

多跳 SSH也称为 SSH 链式连接,它允许您通过一个或多个中间服务器建立连接,从而访问最终目标。

使用 ProxyJump 实现多跳

设置多跳 SSH 最简单、最推荐的方法,是在您的 ~/.ssh/config 文件中使用 ProxyJump 指令。

这会告知您的 SSH 客户端先连接到 JumpHost,然后再从那里建立到 TargetServer 的连接。

Host TargetServer
  HostName 192.168.1.100
  User myuser
  ProxyJump jump_host_user@jump.example.com

使用 ProxyCommand 实现多跳

对于较旧的 SSH 客户端或更复杂的场景,ProxyCommand 提供了更大的灵活性。它会执行一条命令来建立到目标服务器的连接。

ssh -W %h:%p 部分会告知 SSH 将标准输入/输出转发到目标主机和端口。

Host TargetServer
  HostName 192.168.1.100
  User myuser
  ProxyCommand ssh jump_host_user@jump.example.com -W %h:%p

结合代理转发与多跳

您可以将这些强大功能结合起来!在多跳配置中使用代理转发,就不必反复输入密码短语。

只需在 ~/.ssh/config 中跳转主机的配置里添加 ForwardAgent yes,或者使用 ssh -A 连接跳转主机。这样,您的本地代理也可以在最终目标服务器上验证您的身份。

Host JumpHost
  HostName jump.example.com
  User jump_user
  ForwardAgent yes

Host TargetServer
  HostName 192.168.1.100
  User target_user
  ProxyJump JumpHost

快速检查:SSH 功能

请考虑以下关于 SSH 代理和多跳 SSH 的说法。其中哪些为 TRUE?

回顾:无缝且安全的访问

在本课中,您掌握了两种高级 SSH 技术:

  • SSH 代理:保存已解锁的密钥,免去重复输入密码短语的麻烦,同时兼顾便利性和安全性。
  • 代理转发:将本地代理的功能安全地扩展到远程服务器,使您能够在跳转主机上使用本地密钥进行身份验证。
  • 多跳 SSH:通过中间跳转主机访问深层网络,并可使用 ProxyJump 或 ProxyCommand 轻松配置。

这些工具对于高效、安全地管理复杂的服务器基础设施至关重要。

常见问题解答

「SSH 代理与多跳连接」课时是免费的吗?

是的 — 「SSH 代理与多跳连接」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Linux Server Deployment & SSH Mastery 课程的其余内容,请升级到 CoddyKit PRO。 Linux Server Deployment & SSH Mastery 课程共包含 4 节课。

「SSH 代理与多跳连接」这节课中我会学到什么?

利用 SSH 代理无缝管理密钥,并配置多跳 SSH 连接以访问深层嵌套的网络 你通过在浏览器中直接运行的动手代码来练习 Linux Server Deployment & SSH Mastery,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Linux Server Deployment & SSH Mastery 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Linux Server Deployment & SSH Mastery 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「SSH 代理与多跳连接」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Linux Server Deployment & SSH Mastery 课中编写并运行代码吗?

能。每节 Linux Server Deployment & SSH Mastery 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. SSH 端口转发(本地/远程)
  2. SSH 隧道与 SOCKS 代理
  3. SSH 代理与多跳连接
  4. 使用 SCP、SFTP 和 rsync 安全传输文件
← 返回 Linux Server Deployment & SSH Mastery