
Para no escribir la contraseña al hacer algo en cualquiera de estos servidores, necesito cargar mi certificado ssh en el control remoto:
ssh-copy-id CptBartender@remote
Ahora... necesito cargar ese certificado en más de 400 servidores y estoy tratando de encontrar una manera de no escribir/pegar mi contraseña tantas veces.
La pregunta es: ¿cómo puedo automatizar esto en Windows (con MinGW)? Lo más probable es que Cygwin no sea una opción porque parece estar detrás del gran firewall corporativo del infierno.
Hasta ahora he:
- Creó un script que iteraría sobre cada control remoto, pero solicita una contraseña para cada uno de ellos.
- Intenté pasar la contraseña sin
yes
éxito. - leí sobre
expect
, pero no pude encontrar una manera de hacerlo funcionar en MinGW - leer sobre
sshpass
- igual queexpect
He pensado en AutoIt
hacerlo, pero debe haber una manera mejor...
Respuesta1
PuTTY plink
puede aceptar la contraseña como parámetro de línea de comando. No tiene un equivalente directo a ssh-copy-id
, pero se puede programar fácilmente, por ejemplo, ejecutando los comandos manualmente...
plink foo@bar -pw baz "mkdir -p ~/.ssh && echo 'ssh-ed25519 AAAA...' >> ~/.ssh/authorized_keys"
...o subiendo el archivo con pscp
.
Además, si expect
no funciona en Windows, ¿seguramente podrías ejecutarlo en uno de esos 400 servidores Linux?
(Además, dados los números, ¿tal vez debería considerar extraer las claves de LDAP o usar AD/Kerberos? Las versiones recientes de OpenSSH tienen enlaces para la integración de LDAP sin necesidad de parches de terceros).
Respuesta2
Puede buscar la herramienta Putty plink como se mencionó anteriormente. O puede pensar en utilizar uno de los sistemas de gestión de configuración, como Puppet, Ansible o Chef en el futuro. Puede utilizar cualquiera de ellos para agregar algún certificado a todos sus servidores en poco tiempo.
Buscando los números de su servidor, creo que debería pensar seriamente en ello. Se pueden utilizar para la mayoría de las tareas rutinarias de administración de servidores, incluida la gestión de usuarios, la gestión de archivos y directorios y el software.