SSH代理转发,多跳

SSH代理转发,多跳

我使用 Linux 原始计算机测试了此设置 - 一切都是一样的 - 只有第一跳可以使用原始计算机中的密钥。

最初的问题

我正在尝试设置具有多个跃点的 SSH 代理转发。我的本地机器是Windows,带有putty和pageant,所有Linux机器都是Debian 7。

问题是我的私钥源自 Windows,仅在第一跳上有效。在任何第一台机器上添加的私钥都可以在任何地方使用。

第一跳机器称为“vpn1”,第二跳机器称为“www1”。 “vpn1”已连接到互联网和 Intranet(10.1.0.1)。 “www1”仅连接到 Intranet(10.1.0.10)。 'vpn1' 添加密钥([电子邮件受保护])使用“ssh-add”,此键显示在选美中。

调试

我在以下位置看到了所有 3 个键ssh-add -L

ssh-rsa [pubkey-1] [email protected] //This is github key originating from Windows
ssh-rsa [pubkey-2] [email protected] //This is SSH key originating from Windows
ssh-rsa [pubkey-3] [email protected] //This is SSH key originating from 'vpn1'

当我尝试从“vpn1”ssh -v -T [email protected]

debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: [email protected]
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug1: Authentication succeeded (publickey).

当我尝试从“www1”开始时ssh -v -T [email protected]

debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: [email protected]
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: [email protected]
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: [email protected]
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: /home/enbyted/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/enbyted/.ssh/id_dsa
debug1: Trying private key: /home/enbyted/.ssh/id_ecdsa
debug1: Next authentication method: password

对于仅接受 ' 的主机,ssh 也是如此[电子邮件受保护]' 钥匙。但我可以通过 SSH 进行任意多的跃点:[电子邮件受保护]'。当然,git命令也是如此。

配置

我的~/.ssh/config(所有服务器上都相同):

Host 10.1.0.*
    ForwardAgent yes

Host *
    ForwardAgent no

我的/etc/ssh/sshd_config(没有评论,所有服务器上都相同):

Port <custom-port>
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
UsePrivilegeSeparation yes
KeyRegenerationInterval 3600
ServerKeyBits 768
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 120
PermitRootLogin no
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes

问题

  • 那么,这是为什么呢?
  • 我究竟做错了什么?

另外,很奇怪的是,在“www1”上,github 提供了两种身份验证方法 - 密码和公钥...我确信“www1”通过 SSH 连接到 github.com 正在连接到与“vpn1”相同的服务器。

更新#1:图像上的网络设置

请注意,该图片来自文章,但几乎显示了我的设置。

           网络设置图像

因此,我的家用电脑上有 2 个密钥,ruapehu (vpn1) 上有一个密钥。

当我从家用 PC SSH 到 ruapehu 时,我可以很好地使用所有三个密钥。但是当我从 ruapehu (vpn1) 到 aoraki (www1) 执行另一个 ssh 时,我只能使用 ruapehu 的密钥。

当我从 aoraki (www1) ssh 到下面的任何主机时,无论跳数多少,只有来自 ruapehu 的密钥有效。

如果家庭 PC 是带有 Putty + pageant 的 Windows 或带有 ssh-agent 的 Linux,则不会。

答案1

我认为你的问题在于 PuTTY 的配置。需要像这样检查此转发设置:

                     对话的SS

参考

相关内容