9 votos

Cómo gestionar varias sesiones ssh con facilidad en Mac OS X

En mi próximo trabajo voy a manejar muchos servidores con acceso SSH. Serán como ~100-120 hosts, con diferentes nombres de usuario en la mayoría de los hosts, y estoy bastante seguro de que no voy a recordar cada nombre de dominio del host, por no hablar de qué nombre de usuario está en cada host.

¿Existe una herramienta para Mac OS X (preferiblemente Lion) que me permita definir una sesión para cada host (en una sesión me refiero a nombre de usuario y algunas opciones ssh), mostrar la lista de dichas sesiones y conectarme al hacer clic/seleccionar automáticamente?

6voto

Christopher Scott Puntos 665

Hay dos maneras de gestionar, o he visto a la gente gestionar, los datos de SSH:

El bueno, la línea de comandos, el texto sin formato, ssh_config archivo.

Cree un archivo llamado config dentro de ~/.ssh . Puedes especificar parámetros globales poniéndolos encima de cualquier declaración de host. Cuando empecé a utilizar MacPorts En este caso, tuve que definir explícitamente una clave privada SSH por defecto para usarla automáticamente al conectarse, así que como primera línea del archivo puse;

IdentityFile ~/.ssh/id_rsa

Cuando se definen reglas personalizadas para los hosts (e incluso se puede utilizar * como comodín), el aspecto es el siguiente

Host prod-*
  User jason
  Port 2222
  LocalForward 5901 localhost:5901
  IdentityFile ~/.ssh/work-id_rsa

Entonces, cuando ejecute ssh prod-script por ejemplo, el resto de las reglas se aplican automáticamente.


Mucha gente que no quiere gestionar manualmente todas sus cosas de una manera tan engorrosa encuentra rápidamente JellyfiSSH . ( Enlace a la Mac App Store . Esa misma gente también se molestó mucho cuando dejó de poder descargarse gratuitamente).

JellyfiSSH le da acceso a la interfaz gráfica de usuario a casi todo lo que se puede especificar en la línea de comandos o en el archivo ssh_config. JellyfiSSH es sólo una aplicación de almacenamiento de la configuración para fines de organización, ya que genera los comandos basados en las opciones que usted establece y al hacer clic en conectar, abre una nueva ventana de terminal con todas sus opciones definidas en la línea de comandos. JellyfiSSH no es una aplicación de terminal por sí misma.

5voto

moodforaday Puntos 2633

Puede hacer archivos como Example.command y luego hacerla ejecutable: chmod 755 Example.command y haga doble clic en el archivo para abrir una conexión:

#!/bin/sh

exec /usr/bin/ssh username@example.com

exit 0

Si sólo quieres poder conectarte desde la línea de comandos utilizando un alias (palabra fácil de recordar), puedes configurarlos en ~/.ssh/config

Host foo
HostName some.really.long.hostname.here.com
Port 22
User bigfun

A continuación, puede conectarse utilizando el host foo

ssh foo

O simplemente puedes hacer funciones en tu archivo de configuración del shell (~/.bashrc o ~/.zshenv):

s1 () {
    ssh -v username@example.com
}

entonces puede conectarse a example.com simplemente escribiendo s1 en la línea de comandos, y utilizará el nivel 1 de verbosidad.

Por último, puedes utilizar el autocompletado de ssh, pero la sintaxis para ello dependerá de tu shell de elección. Una búsqueda rápida en Google de 'ssh autocomplete YourShellHere' debería mostrar algunos ejemplos.

Utilizar una frase de contraseña y el llavero de OS X

Lo más importante, en mi opinión, es configurar ssh para que funcione con una frase de contraseña. OS X tiene una gran integración de llaveros desde Leopard.

ssh-keygen -t dsa -f ~/.ssh/id_dsa -C "you@exampledomain.com"

cat ~/.ssh/id_dsa.pub | ssh you@host.domain 'cat – >> ~/.ssh/authorized_keys'

(Fuente: http://www.paosborne.com/blog/?p=369 .)

Entonces, cuando usted ssh a una nueva máquina, el llavero de OS X le pedirá su frase de contraseña ssh

Ver también http://www.dribin.org/dave/blog/archives/2007/11/28/ssh_agent_leopard/ para una descripción más completa. El artículo es más antiguo, pero Lion funciona igual.

No olvides Dropbox

Si te conectas a varias máquinas, puedes sincronizar tu ~/.ssh/config archivo a través de Dropbox. Yo guardo el mío en ~/Dropbox/etc/ssh/config.txt y entonces lo hago:

cd ~/.ssh
ln -s ../Dropbox/etc/ssh/config.txt config

Hago lo mismo que con mi ~/.zshenv:

cd
ln -s Dropbox/etc/zshenv.sh .zshenv

De hecho, puse todos mis scripts en ~/Dropbox/bin/ y lo añadí a mi $PATH también, sólo para cubrir todas mis bases.

-2voto

borilla Puntos 330

Puedes probar vSSH para Mac OS X ( PuTTY -).

  • Gestionar la lista de conexiones (host, puerto, nombre de usuario, contraseña, claves y muchos otros ajustes)
  • Puede casi todo lo que PuTTY puede
  • Interfaz multiventana con varias pestañas
  • Soporte de macros (shell scripts como elementos de menú para un acceso rápido)
  • Sincronización de iCloud (conexiones, macros y claves) con vSSH y Control SSH aplicaciones para iOS

Disponible en el Mac AppStore .

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