47 votos

Cómo almacenar las credenciales SSH en el Terminal

Soy nuevo en el MacBook y estoy ejecutando El Capitan.

Estoy migrando el uso de mi máquina de un PC a un MacBook. Hace tiempo que uso PuTTY y SuperPuTTY en un PC.

Quiero crear y guardar las credenciales de acceso a mis servidores web en el Terminal del MacBook tal y como he hecho en SuperPuTTY en el PC.

¿Es posible guardar las credenciales de acceso al servidor web en Mac Terminal?

Este es mi objetivo general:

Me gustaría saber si hay una manera fácil en Mac Terminal para almacenar las siguientes credenciales de inicio de sesión de línea de comandos y luego utilizar algún tipo de código corto para conectarse a mi servidor web a través de Terminal:

ssh -p 2200 root@123.456.789.012
Password: ****************************************************************

Gestiono y me conecto a 5 servidores web diferentes, por lo que ordenar y organizar las credenciales de acceso en un método de conexión corto/rápido supondría un gran ahorro de tiempo. Especialmente porque mis contraseñas son cadenas crípticas de 64 caracteres.

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.

67voto

shsteimer Puntos 8749

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

Gracias @IamC - esta respuesta es genial y estoy seguro de que funcionará. He creado una cuenta de intercambio de pila aquí en el Canal Mac esta mañana para ver si podía encontrar un rápido y fácil manera de guardar las credenciales de acceso en Terminal o en el Mac de alguna manera. Parece que hacerlo es extremadamente complicado y no es una solución viable para mí. He aquí por qué: <más>

0 votos

<cont.> Tengo acceso por línea de comandos a varios servidores web (5 en total). Tengo un PC de escritorio en mi oficina de trabajo con acceso SSH (a través de PuTTY) a estos servidores web. Tengo un gran PC portátil en la oficina de mi casa con acceso SSH (a través de PuTTY) a estos servidores web. Acabo de comprar un Macbook Air para los viajes y las visitas a clientes in situ. Es perfecto para esa necesidad en particular. Tenía la esperanza de hacer conexiones SSH a los servidores tan fácil como lo es a través de PuTTY y SuperPuTTY en el PC. <más>

0 votos

<cont.> Pero no puedo ir por la vía de la clave de autentificación pública porque necesitaría cambiar la forma en que PuTTY funciona en los PC de mi casa y de la oficina del trabajo. Se ha convertido en una tarea demasiado desalentadora para hacer el trabajo de Mac como mi PC, así que creo que voy a tener que seguir con el proceso de copiar y pegar para conectar desde mi Mac. Gracias por su ayuda. Aprecio mucho su ayuda para tratar de hacer mi proceso más simple.

8voto

Benny Hill Puntos 111

Puedes usar sshpass para guardar la contraseña y no tener que insertarla cada vez, lo cual no es una buena práctica (problemas de seguridad).

Siga las instrucciones para la instalación de mac os x en : https://gist.github.com/arunoda/7790979

Cuando tengas instalado sshpass ejecuta sshpass -p "YOUR_PASSWORD" ssh -o StrictHostKeyChecking=no root@123.456.789.012:2200

haz lo mismo para tus 5 servidores web y no tendrás que introducir la contraseña cada vez.

1 votos

Me siento demasiado tonto en este caso. Supongo que el uso de un PC con PuTTY y SuperPuTTY me alejó demasiado de la línea de comandos base. He editado mi OQ con mi objetivo general. Echa un vistazo.

0 votos

Estoy asumiendo ahora que usted puede conectarse a Root@123.456.789.012 y sólo quiere automatizar el proceso. Básicamente no quieres escribir cada vez ssh -p 2200 root@123.456.789.012 y Password: ********************** ?

0 votos

ssh-copy-id no forma parte de la distribución estándar de OS X.

4voto

lloydphillips Puntos 1189

Además del tema de la clave pública/privada, el archivo .ssh/config puede ser configurado para facilitar el uso de los comandos ssh, como alias, defaut usuario/puerto por servidor, opciones ssh, comandos proxy...

Básicamente cualquier cosa complicada que puedas poner en un comando ssh puede estar en este archivo también.

0voto

user199493 Puntos 11

He portado Putty a Mac como un paquete de aplicaciones nativas, así que no hay necesidad de macports o terminales si no eres un usuario técnico.

Más información con capturas de pantalla aquí: http://www.Wine-revisiones.net/2016/08/putty-for-mac-os-x-now-available.html

Salud,

0 votos

¡Bienvenido a Ask Different! Asegúrate de responder directamente a la pregunta. Si mencionas un producto en el que trabajas, no pasa nada, pero intenta centrarte en el tema en lugar de pegar el mismo texto de marketing en varios mensajes.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X