¿Cómo puedo cambiar a root desde el inicio de sesión de anuncios para enviar claves ssh a /root/.ssh/authorized-keys?

¿Cómo puedo cambiar a root desde el inicio de sesión de anuncios para enviar claves ssh a /root/.ssh/authorized-keys?

Estoy intentando enviar claves ssh a varios servidores desde el servidor de salto mediante un script de shell. Solo puedo iniciar sesión desde mi cuenta publicitaria y luego cambiar a root y no puedo iniciar sesión directamente como root. Teniendo esta condición, ¿cómo puedo enviar claves ssh a servidores que deben copiarse en /root/.ssh/authorized-keys?

Respuesta1

No necesita ser root en el servidor de salto para poder acceder a otros servidores como root.

Primero establezca un archivo de configuración ssh si aún no tiene uno. Generalmente existe en ~/.ssh/config (donde ~ es la abreviatura de $HOME).

Algunas cosas que necesitará saber primero son los rangos de IP de los servidores a los que intenta acceder desde el servidor de salto. Es de esperar que esas IP no estén en la misma subred que el servidor de salto.

Aquí hay una muestra:

# 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

En el ejemplo anterior, solo es necesario cambiar tres cosas para su entorno:

  • reemplácelo 192.168.122.*con el rango de IP de su servidor
  • reemplácelo ip-or-fqdn-of-jumpservercon la IP de su servidor de salto o FQDN (nombre de dominio completo)
  • reemplácelo your-user-idcon su identificación de usuario en el servidor de salto utilizado para acceder a él mediante ssh

Una vez creado ese archivo, puede colocar la clave pública en el archivo raíz autorizado_keys para cada servidor mediante el ssh-copy-idcomando que se muestra a continuación. La primera vez, por supuesto, es posible que deba proporcionar credenciales.

Además, de forma predeterminada, la mayoría de los servidores están configurados para no permitir el acceso raíz ssh directamente. Si ese es el caso, tiene que realizar más cambios de sshd_config en cada servidor.

Ahora simplemente ejecute ssh-copy-id 192.168.122.10para copiar su clave pública al archivo root autorizado_keys en un servidor. Por supuesto, reemplace la IP con la IP de su propio servidor. Repita para cada servidor.

Una vez que la clave esté presente en cada servidor, ahora debería poder hacerlo ssh some-server-IPy se realizará automáticamente una conexión al servidor de salto utilizando su identificación de usuario y se establecerán reenvíos de puertos para acceder al servidor remoto como root.

información relacionada