第一个服务器上带有密钥的 SSH 隧道

第一个服务器上带有密钥的 SSH 隧道

我试图DestinationHost通过HopHost隧道

ssh -o ProxyCommand='ssh HopHostUser@HopHost nc -w 10 %h %p' DestinationHost

首先,我以 HopHostUser 身份向 HopHost 进行身份验证

HopHostUser@HopHost password: 

在我向 HopHost 进行身份验证后,我得到

Permission denied (publickey).

HopHostUser的连接使用DestinationHost密钥进行身份验证,该密钥已配置为HopHostUseronHopHost

如果我要通过 HopHost 一步一步连接到 DestinationHost(不是隧道/代理),我所要做的就是:

 me@localhost >> ssh HopHostUser@HopHost
 HopHostUser@HopHost password:
 HopHostUser@HopHost >> ssh DestinationHost
 HopHostUser@DestionationHost >> 

如果我使用-v原始 ssh 命令,我可以看到本地主机上的密钥,而不是 HopHost 上的密钥

我可以告诉 SSH 使用外部密钥,而不是查看我的本地主机吗?

答案1

不能使用代理/隧道,因为 ssh 密钥存储在跃点服务器上并且无法在本地访问。理想情况下,您生成一个新密钥并将其添加到~/.ssh/authorized_keyson DestinationHost,但这可能是不可能的。

设置此功能的最简单方法是使用远程命令和两个本地端口转发。

打开终端目的地主机:

ssh -t HopHostUser@HopHost "ssh DestinationHost"

打开终端+端口转发目的地主机本地主机:

ssh -t -L8081:localhost:9999 HopHostUser@HopHost "ssh -L9999:localhost:80 DestinationHost"

为此,您最好使用 ssh 配置。说起来很长。

答案2

你有没有尝试过 ?

ssh HopHostUser@HopHost ssh DestinationHost

几年前我曾经这样做过,也许 ssh 现在可以防止这种情况发生。我无法访问多个主机,因此无法测试此命令。

相关内容