Estoy tratando de copiar .ssh / id_rsa.pub desde nuestro servidor central a varios servidores. Tengo el siguiente script que generalmente uso para enviar cambios a los diferentes servidores.
#!/bin/bash
for ip in $(<IPs); do
# Tell the remote server to start bash, but since its
# standard input is not a TTY it will start bash in
# noninteractive mode.
ssh -q "$ip" bash <<-'EOF'
EOF
done
Pero en este caso, necesito capturar la clave pública en el servidor local y luego agregarla a varios servidores. ¿Hay alguna manera de usar el script de documento anterior para ejecutar lo siguiente?
cat .ssh/id_rsa.pub |ssh tony@0.0.0.0 'cat > .ssh/authorized_keys'
shell-script
ssh
usuario67186
fuente
fuente
Respuestas:
Con este simple bucle, puede automatizarlo y difundirlo a todos los servidores remotos.
fuente
Aquí está mi script simple para copiar ssh-keygen a múltiples servidores sin pedir contraseña cada vez.
fuente
La respuesta aceptada no funcionará si uno necesita poner la clave pública de otra persona en varias máquinas. Entonces, se me ocurrió la siguiente solución:
cat add-vassal-tc-agents.sh
Este script agrega la nueva clave a los usuarios en la lista de máquinas, siempre que el entorno en el que se ejecuta tenga acceso.
Ejemplo de
tc-agents-list.txt
:fuente
Para copiar su clave pública, tiene algo incorporado en openssh. Así que en lugar de
cat
yssh
utilizar esto: -fuente
Puede hacer esto con una simple lista de servidores en bucle while e incrustados como esta:
Tener la lista dentro del script elimina los archivos de datos separados que pueden extraviarse.
fuente
ssh-copy-id
Ya se ha sugerido en algunas otras respuestas.Suponiendo que tiene un archivo con la lista de IP de los servidores, nombre SERVER y solo se definen las direcciones IP de los servidores.
Esto para el bucle también funcionará.
fuente