Aunque existen multitud de artículos explicando cómo generar las claves RSA para conectar automática a un servidor por SSH y/o SFTP quisiera compartir con vosotros, a modo de chuleta (que, por mi mala cabeza, seguro revisaré la próxima vez que necesite conectar a un servidor remoto sin introducir contraseñas) la forma que suelo utilizar yo y que consta de dos simples pasos.
Espero os sea de utilidad a alguna.
Generando las llaves pública y privada
Este paso sólo deberás hacerlo si no las has generado con anterioridad (comprueba si existe el directorio $HOME/.ssh)
Lanzaremos el comando
ssh-keygen
Como respuesta obtendrás algo parecido a
Exportando la clave pública al servidor
Aunque muchos prefieren utilizar el comando scp para hacer una copia remota (CP) segura (Ssh) yo opto por lanzar un
ssh-copy-id {usuario}@{servidor}
obteniendo una respuesta parecida a
Probando la conexión sin claves
Sólo te queda probar si puedes conectarte al servidor por ssh sin tener que introducir contraseñas.
Lanza para ello el habitual
ssh {usuario}@{servidor}
en el ejemplo, sería
ssh root@192.168.0.8
Si todo ha ido bien, deberías poder conectar sin problemas con la máquina y, lo que es más importante: olvidarte de la clave (no estaría de más que la apuntases en algún sitio ;))
Conclusión
Dos sencillos pasos para evitar tener que recordar (e introducir) claves cada vez que te conectas a alguno de los servidores que mantienes y/o gestionar.
Y tú
- ¿eres de conexiones automáticas?
- ¿prefieres anotar contraseñas en posits?
- ¿tienes buena memoria o utilizas siempre la misma contraseña? 😛
Quería puntualizar (y creo no equivocarme) que a la hora de generar la clave se pide una «passphrase». Si esta se deja en blanco, es verdad que no se pide clave a la hora ce conectarnos, pero si la metimos se nos pedirá esa misma «passphrase» cada vez que nos conectemos al servidor.
También comentar que si bien, es más cómodo no utilizar las «passphrare» también es peligroso, ya que si nos roban la clave privada o alguien usa nuestro equipo en un descuido, podrá acceder directamente al servidor. Por tanto, hay que pensárselo 2 veces antes de no usar «passphrase». Hoy por hoy la seguridad está bastante reñida con la comodidad…
Un saludo
Me gustaMe gusta
Muy buena puntualización Miguel.
En mi caso me libro al tener $HOME encriptado y sólo conocer yo la clave de acceso a mi cuenta (para el resto de la familia hay una cuenta «invitado» ;))
En equipos compartidos debe tener más cuidado o bien, usar la passphrase (gracias por comentarlo)
Me gustaMe gusta
Excelente artículo!
Un comentario: «muchos prefieren utilizar el comando scp para hacer una copia remota (CP) segura (Ssh)»
El efecto final es el mismo (con ssh-copy-id también se copia en forma segura por scp) sólo que algunos nunca recordamos el atajo.
Me gustaMe gusta
Yo entre ellos Sebastián; de ahí que haya publicado el artículo: para que no se me olvide 😉
Me gustaMe gusta
Excelente no hay mejor opción
Gracias por todo
Me gustaMe gusta
Toadavía lo podemos llevar más allá generando un archivo de texto en ~/.ssh/config con lo siguiente:
Host nombredelhost
HostName direccióndelservidor.com
User usario
Port 2222
y al final podremos lanzar un ssh de la siguiente forma:
$:ssh nombredelhost
Esto nos puede ayudar bastante, por ejemplo, cuando tenemos varios servidores.
Me gustaMe gusta
Muy interesante la propuesta; ya sólo falta que nos lea la mente la terminal y evitarnos teclear 😉
¿Alguien da más?
Me gustaMe gusta
Buenas a todos,
Lo primero felicitarte por el blog y también aportar unos cuantos artículos relacionados con SSH:
http://principiatechnologica.wordpress.com/?s=ssh&submit=Buscar
En este blog podéis consultar también noticias y tutoriales linux que mezclamos con redes cisco, física del universo y otros temas. El blog de inquietud técnica.
Saludos!
Me gustaMe gusta
Bienvenido a este rincón del «universo» digital; me ha gustado descubrir tu blog pues incluye artículos interesantes no solo de tecnología sino de dos de mis aficiones «ocultas» 😉
Un saludo y gracias por comentar
Me gustaMe gusta
Muy buen tip, Jose. Ahora paso a hacer «mi aporte» 🙂
Si se tiene el acceso por otro puerto que no sea el 22 sale:
ssh: connect to host {host} port 22: Connection timed out
Para solucionar ésto simplemente se pone así:
ssh-copy-id «{username}@{host} -p {port}»
Así entrecomillado y se copia la clave correctamente 🙂
¡Saludos!
Me gustaMe gusta
Gracias a ti Engell por hacerlo aún mejor.
Salu2 compi, me alegra volver a verte activo por aquí 😛
Me gustaMe gusta