
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-jumpserver
con la IP de su servidor de salto o FQDN (nombre de dominio completo) - reemplácelo
your-user-id
con 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-id
comando 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.10
para 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-IP
y 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.