Linux

從 A 到 B 到 C 的 SSH,使用 B 上的私鑰

  • July 31, 2020

我正在尋找一種簡單的方法來從我的本地電腦 A 通過代理 B 到目標主機 C 進行 SSH。與 C 上的公鑰一起使用的私鑰在 B 上,我不能把那個鑰匙放在我的本地機器上。有小費嗎?

另外,我希望能夠使用 ~/.ssh/config 來執行此操作。

謝謝!

示意圖:

   ssh       ssh
A ------> B ------> C
   ^          ^
using A's   using B's
ssh key     ssh key

前提條件:

  • A正在執行 ssh-agent;
  • A可以訪問B
  • B可以訪問C
  • A的 ssh 公鑰存在於B:~/.ssh/authorized_keys
  • B的 ssh 公鑰存在於C:~/.ssh/authorized_keys

~/.ssh/configA,添加

Host C
   ProxyCommand ssh -o 'ForwardAgent yes' B 'ssh-add && nc %h %p'

如果您在 B 上的 ssh 私鑰位於非標準位置,請將其路徑添加到ssh-add.

您現在應該可以C從以下位置訪問A

A$ ssh C
C$

引用自:https://serverfault.com/questions/337274