Puedes copiar tu clave pública en las máquinas remotas. Siempre que tengan activada la autenticación de clave pública y tu clave pública esté presente en la máquina remota, puedes ssh
a las máquinas sin tener que proporcionar una contraseña.
Primero tendrás que generar un par de claves públicas/privadas de la siguiente manera:
ssh-keygen -t rsa
Sigue las indicaciones. Cuando te pregunte si quieres proteger la clave con una frase de paso, di que SÍ. Es una mala práctica no proteger tus claves con una frase de contraseña y te mostraré cómo sólo tener que introducir la contraseña de vez en cuando.
Si ya tiene un par de claves, puede omitir el paso anterior.
Ahora, suponiendo que su clave ssh existe en su Mac como ~/.ssh/id_rsa.pub
puede instalarlo en una máquina remota ejecutando:
cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Para su ejemplo de servidor específico citado anteriormente, el comando se vería así:
cat ~/.ssh/id_rsa.pub | ssh -p 2200 root@123.456.789.012 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Tendrá que introducir la contraseña de root@123.456.789.012
para realizar esta copia, pero esta debería ser la última vez que lo necesite. Asumiendo que el servidor remoto sshd
está configurado para hacer la autenticación de clave pública-privada, cuando usted ssh a la caja ahora no debe pedir una contraseña para el root
en su lugar, le pedirá la contraseña de su cuenta de clave . Siga leyendo para saber cómo hacer que esto sea algo que no tenga que entrar siempre.
Repite lo anterior para cada máquina a la que quieras acceder por ssh con tus claves en lugar de una contraseña.
Tenga en cuenta, cualquiera que se hace con su ~/.ssh/id_rsa
puede hacer ssh a esta máquina como root
sin proporcionar una contraseña para la máquina remota. Proteger con contraseña el archivo de la clave asegura que necesitarán conocer la contraseña de esa clave para usarla. Asegúrate de que ese archivo es seguro. Utiliza la encriptación del disco en tu Mac y mantén los permisos sobre el archivo y el ~/.ssh/
directorio apretado.
Para facilitar el uso de la llave sin tener que introducir la contraseña cada vez, OS X ejecuta un ssh-agent
en el fondo de su máquina. Este agente guardará en caché el par de claves la primera vez que lo uses, de modo que sólo tengas que introducir tu contraseña de vez en cuando. Si solo pones en reposo tu mac, y nunca lo reinicias, puedes pasar largos periodos de tiempo sin necesidad de introducir tu contraseña.
Puedes almacenar en caché todas tus claves SSH con la función ssh-agent
corriendo:
ssh-add
Ahora sólo tienes que recordar el clave contraseña, no las muchas contraseñas de cuentas diferentes. Suelo guardar mis contraseñas clave en 1Contraseña (sin afiliación), simplificando aún más el número de contraseñas que debo recordar. Luego sólo las busco en 1Password y las corto y pego en la Terminal la extraña vez que reinicio mi Mac y hago que se ejecute mi ssh-agent
que se reinicie.
Si combina la copia de su llave en máquinas remotas con la solución de gestión de conexiones de Terminal.app en esta pregunta Tendrás algo muy parecido a PuTTY para la experiencia de conexión de la GUI.
En el lado del servidor, compruebe /etc/ssh/sshd_config
y asegúrate:
PubkeyAuthentication yes
está activado en la configuración (lo está por defecto en OpenSSH). También es posible que desee establecer:
PasswordAuthentication no
Mientras estás allí, la autenticación basada en la contraseña se desactiva y las llaves se convierten en la única forma de acceder a la máquina.
Tendrás que reiniciar sshd en la máquina si haces algún cambio en el archivo de configuración.
0 votos
He purgado los comentarios ya que la versión de edición tres de Tammy lo ha dejado fuera de juego en términos de claridad y utilidad. Bien hecho.