Как мне переключиться на root с входа в систему ad, чтобы отправлять ключи ssh в /root/.ssh/authorized-keys?

Как мне переключиться на root с входа в систему ad, чтобы отправлять ключи ssh в /root/.ssh/authorized-keys?

Я пытаюсь отправить ключи ssh на несколько серверов с сервера jump с помощью скрипта оболочки. Я могу войти только из своего аккаунта ad, а затем переключиться на 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

После создания этого файла вы можете поместить открытый ключ в корневой файл authorized_keys для каждого сервера с помощью ssh-copy-idкоманды, показанной ниже. В первый раз, конечно, вам может потребоваться предоставить учетные данные.

Также, по умолчанию, большинство серверов настроены на запрет доступа root по ssh напрямую. Если это так, вам нужно внести больше изменений в sshd_config на каждом сервере.

Теперь просто запустите ssh-copy-id 192.168.122.10, чтобы скопировать ваш открытый ключ в файл root authorized_keys на сервере. Конечно, замените IP на IP вашего сервера. Повторите для каждого сервера.

После того, как ключ будет присутствовать на каждом сервере, вы сможете ssh some-server-IPавтоматически подключиться к серверу перехода, используя ваш идентификатор пользователя, и установить переадресацию портов для доступа к удаленному серверу в качестве пользователя root.

Связанный контент