我如何从 ad 登录切换到 root 以将 ssh 密钥发送到 /root/.ssh/authorized-keys

我如何从 ad 登录切换到 root 以将 ssh 密钥发送到 /root/.ssh/authorized-keys

我正在尝试使用 shell 脚本从跳转服务器向多个服务器发送 ssh 密钥。我只能从我的广告帐户登录,然后切换到 root,无法直接以 root 身份登录。在这种情况下,我如何将 ssh 密钥发送到需要在 /root/.ssh/authorized-keys 下复制的服务器?

答案1

您不需要成为跳转服务器上的 root 用户即可以 root 身份访问其他服务器。

如果您还没有 ssh 配置文件,请先创建一个。它通常位于~/.ssh/config (其中 ~ 是 $HOME 的简写)。

您首先需要了解一些信息,即您尝试从跳转服务器访问的服务器的 IP 范围。希望这些 IP 与跳转服务器不在同一子网中。

以下是一个示例:

# save as ~/.ssh/config
CheckHostIP             no
StrictHostKeyChecking   no
AddKeysToAgent          yes
ForwardAgent            yes
UserKnownHostsFile      /dev/null

# Servers to get to via jump server
# (note their subnet defined by a range using an asterisk, you need to provide)
# This establishes root as login id for every server in the range 
# and uses the JumpServer (can leave that name as is) as a proxy.
Host                    192.168.122.*
    ProxyJump           JumpServer
    User                root

# JumpServer info. Provide its IP or FQDN and your user id
# IP or FQDN set in the HostName; you can leave Host set as JumpServer
# since this is referred to above in ProxyJump line
Host                    JumpServer
    HostName            ip-or-fqdn-of-jumpserver
    User                your-user-id

在上面的示例中,您只需针对您的环境更改 3 项内容:

  • 替换192.168.122.*为您的服务器 IP 范围
  • 替换ip-or-fqdn-of-jumpserver为您的跳转服务器 IP 或 FQDN(完全限定域名)
  • 替换your-user-id为用于 ssh 进入的跳转服务器上的用户 ID

创建该文件后,您可以通过以下命令将公钥放入每个服务器的根 authorized_keys 文件中ssh-copy-id。当然,第一次您可能需要提供凭证。

此外,默认情况下,大多数服务器都配置为禁止直接使用 ssh root 访问。如果是这种情况,您需要在每台服务器上进行更多 sshd_config 更改。

现在只需运行即可ssh-copy-id 192.168.122.10将您的公钥复制到服务器上的 root authorized_keys 文件中。当然,请用您自己的服务器 IP 替换 IP。对每个服务器重复此操作。

一旦每台服务器上都有密钥,您现在就应该能够ssh some-server-IP使用您的用户 ID 自动连接到跳转服务器,并建立端口转发以便以 root 身份访问远程服务器。

相关内容