Cómo administrar múltiples sesiones ssh con facilidad en Mac OS X

8

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

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

    
pregunta kars7e 30.12.2011 - 01:48

3 respuestas

6

Hay dos formas en que administro, o he visto a otras personas administrar, los datos de SSH:

Good 'ole, línea de comando, texto sin formato, ssh_config archivo.

Crea un archivo llamado config dentro de ~/.ssh . Puede especificar parámetros globales colocándolos sobre cualquier declaración de host. Cuando comencé a usar MacPorts , tuve que definir explícitamente una clave privada SSH predeterminada para usar automáticamente al conectarme, así como la primera línea de el archivo que pongo;

IdentityFile ~/.ssh/id_rsa

Cuando define reglas personalizadas para hosts (e incluso puede usar * como comodín), se parece a esto:

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

Luego, cuando ejecuto ssh prod-script , por ejemplo, todas las demás reglas se aplican automáticamente.

Una gran cantidad de personas que no desean administrar manualmente todas sus cosas de una manera tan complicada encuentran rápidamente a JellyfiSSH . ( Enlace de la tienda de aplicaciones Mac . Las mismas personas también se molestaron mucho cuando dejó de ser descargable gratis.)

JellyfiSSH le brinda acceso GUI a casi todo lo que se puede especificar en la línea de comandos o en el archivo ssh_config. JellyfiSSH es solo una aplicación de almacenamiento de configuración para fines de organización, ya que genera los comandos basados en las opciones que configuró 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 en sí misma.

    
respondido por el Jason Salaz 30.12.2011 - 03:03
5

Puedes crear archivos como Example.command y luego hacerlos ejecutables: chmod 755 Example.command y hacer doble clic en el archivo para abrir una conexión:

#!/bin/sh

exec /usr/bin/ssh [email protected]

exit 0

Si solo desea poder conectarse desde la línea de comandos usando un alias (palabra fácil de recordar), puede configurarlos en ~ / .ssh / config

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

Luego puedes conectarte usando el host foo

ssh foo

O simplemente puede crear funciones en su archivo de configuración de shell (~ / .bashrc o ~ / .zshenv):

s1 () {
    ssh -v [email protected]
}

luego puedes conectarte a example.com simplemente escribiendo s1 en la línea de comandos, y utilizará el nivel 1 de detalle.

Por último, puedes usar ssh autocompletar, pero la sintaxis de eso dependerá de tu shell de elección. Un google rápido para 'ssh autocomplete YourShellHere' debería mostrar algunos ejemplos.

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

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

ssh-keygen -t dsa -f ~/.ssh/id_dsa -C "[email protected]"

cat ~/.ssh/id_dsa.pub | ssh [email protected] 'cat – >> ~/.ssh/authorized_keys'

(Fuente: enlace .)

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

Vea también enlace para una descripción más completa. El artículo es más antiguo, pero Lion funciona de la misma manera.

No olvides Dropbox

Si inicia sesión en varias máquinas, puede sincronizar su archivo ~/.ssh/config a través de Dropbox. Mantengo el mío en ~/Dropbox/etc/ssh/config.txt y luego 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 de shell en ~ / Dropbox / bin / y agregué eso a mi $ PATH también, solo para cubrir todas mis bases.

    
respondido por el TJ Luoma 30.12.2011 - 04:43
-2

Puedes probar la aplicación vSSH para Mac OS X ( PuTTY -basado).

  • Administrar la lista de conexiones (host, puerto, nombre de usuario, contraseña, claves y muchas otras configuraciones)
  • Puede casi todo lo que PuTTY puede
  • Interfaz de ventanas múltiples de múltiples pestañas
  • Compatibilidad con macros (shell scripts como elementos de menú para un acceso rápido)
  • sincronización de iCloud (conexiones, macros y claves) con vSSH y control de SSH para iOS

Disponible en la Mac AppStore .

    
respondido por el whoami 24.04.2014 - 16:18

Lea otras preguntas en las etiquetas