ProxyJump 要求输入两次相同的密码

ProxyJump 要求输入两次相同的密码

为了工作,我必须连接到远程服务器。连接非常简单SSH,只需一个密码(不需要身份验证文件)。为了更清楚起见,我像这样连接:

  1. 在我的终端上执行。ssh [email protected]
  2. 手动输入我的密码。
  3. ssh slurm-login以连接到 slurm。

ssh请注意,我只输入一次密码,第二次输入时不需要密码ssh slurm-login

现在,我想使用 SSH 配置文件简化我的连接。这是我创建的配置:

Host csail
  HostName login.target.edu
  User user
  ForwardAgent yes
  
Host slurm
    HostName slurm-login.target.edu
    User user
    ProxyJump csail

奇怪的是,通过连接ssh slurm需要输入我的原始密码,但要输入两次,一次又一次!我不明白原因。任何帮助都将不胜感激。

答案1

首先,代理跳转是不是和 ssh 到远程机器,然后从那里 ssh 到更远的地方是一样的。代理跳转的工作原理如下:它连接到第一台机器,然后建立 TCP 转发到另一台机器的 SSH 端口;然后它连接直接从本地机器到隧道的本地端,最终连接到其他机器。

为了无密码连接到第二台机器,你需要在该机器的authorized_keys文件中拥有一个公钥,该公钥与存在于本地机器,而不是在跳转主机上。我不明白为什么必须输入任何密码;我会用相同的密钥连接到第一台机器。

确保密钥已分发的最简单方法就是运行ssh-copy-id csailssh-copy-id slurm

只拥有一个私钥并将其对应的公钥分发给所有您要连接的机器是安全的。这是正常且正确的做法;它不会像在所有地方使用相同的密码那样造成安全漏洞。

其他考虑因素是你必须加密用于无限制连接的密钥。经验法则是:如果密钥以交互方式使用,则其私钥是加密的。使用 ssh-agent 可以避免每次连接时都输入密码。如果您在某些自动化设置中使用密钥,则您严重限制将其放置在目标机器上(阅读man sshd部分AUTHORIZED_KEYS FILE FORMAT以了解如何执行此操作),因此它只能用于执行您正在自动化的特定任务,并且您可能拥有没有密码的私钥。

相关内容