¿Cómo crear un acceso directo de Terminal de conexión ssh en Mac OS X?

27

Apesta abrir Terminal cada vez y escribir un comando SSH completo. ¿Cómo puedo crear un acceso directo de Terminal de conexión SSH en Mac OS X 10.6.8 (Snow Leopard)?

También tengo un puerto personalizado para conectarme.

misha
fuente

Respuestas:

80

La respuesta más * NIX-y es usar las características de SSH para su ventaja.

Cree un archivo nombrado configen ~/.ssh/(una carpeta nombrada .sshen su carpeta de inicio). Agregue una entrada para cada computadora a la que desee conectarse, de esta manera:

Host compy
    HostName 98.256.211.12
    Port 90
    User sidney
    IdentityFile ~/.ssh/my_rsa_key
  • HostName puede ser una dirección IP o un nombre de host real.
  • Port no es obligatorio si se usa el puerto SSH predeterminado
  • IdentityFileno es obligatorio si no usa una clave.

    Luego, para conectarse, simplemente escriba

ssh compy

Si usa la autenticación basada en claves y almacena la contraseña de su clave en el Llavero, ni siquiera necesitará ingresar una contraseña.

Además, puede crear un archivo .command (un archivo de texto sin formato con la extensión .command) que contiene la línea de comando que utiliza para conectarse al servidor ( ssh compyo ssh -i ~/.ssh/my_rsa_key -p 90 [email protected]). Se abrirá en la Terminal y ejecutará ese comando.

También puede usar el New Remote Connection…elemento de menú en Terminal para conectarse. Simplemente agregue su host en SSH haciendo clic en el +botón en la columna derecha.

Leer más AQUÍ

s4y
fuente
Usé esto en combinación con agregar mi clave ssh al servidor. Puede presionar su clave pública como esta 'ssh-copy-id -i .ssh / id_rsa.pub nombre de usuario: contraseña @ remotehost'
jspooner
10

Tienes un par de opciones en las que puedo pensar:

Crear un archivo .command

En su editor de texto favorito, cree guardar un archivo de texto sin formato con su comando ssh, por ejemplo.

ssh -p 23 [email protected]

Nombra el archivo WHATEVERYOUWANT.command. Luego debe configurar el .commandarchivo con privilegios de ejecución ( chmod 755 /PATH/TO/WHATEVERYOUWANT.command), pero ahora tiene un archivo que, al hacer doble clic, abrirá Terminal y ejecutará ese comando.

Crea alias para tu caparazón

Suponiendo que está utilizando bash (el shell predeterminado en Mac OS X) puede agregar alias a su .bashrccarpeta de inicio.

p.ej. alias sshserver='ssh -p 23 [email protected]'

Puede encontrar más información sobre los alias en [Wikipedia] ( http://en.wikipedia.org/wiki/Alias_(command) o leyendo la documentación.

Chealion
fuente
5

Hay muchas maneras de hacer esto. Esto es lo que hago:

Abrir preferencias de terminal

Duplique su perfil en la pestaña Configuración con el ícono de ajustes. Esto cambia su archivo de configuración predeterminado, así que cambie su antiguo valor predeterminado a lo que era antes de la duplicación.

En su nueva configuración personalizada, haga clic en Shell escriba su comando ssh en la sección Ejecutar comando al iniciar.

Cambie el nombre de su nueva configuración de Personalizada a lo que desee.

Ahora puede comenzar su sesión desde los elementos del menú Nueva ventana o Nueva pestaña y, por supuesto, se puede asignar un atajo de teclado en Teclado y mouse en Preferencias del sistema.

ridogi
fuente
3

Puede crear un AppleScript que ejecute un comando para usted:

tell application "Terminal"
    do script "ssh server.example.com"
end tell
Stephen Jennings
fuente
3

Para abrir rápidamente una conexión ssh desde casi cualquier lugar de su Mac, haga lo siguiente:

  • Abra TextEdit y escriba su cadena de conexión en forma de: ssh://[email protected]
  • Seleccione toda la línea y arrástrela y suéltela en el Escritorio. El resultado será un *.inetlocarchivo.
  • Mueva el archivo a cualquier carpeta que desee. Hice uno con nombre ~/connectionsque contiene todos mis *.inetlocarchivos. Puede cambiar el nombre de este archivo a lo que quiera e incluso cambiar su icono.
  • Ahora puede arrastrar y soltar el *.inetlocarchivo en el Dock, la barra lateral o la barra de herramientas del Finder, o en cualquier otro lugar. (Incluso se puede seleccionar con Spotlight)
  • Si usa LaunchBar, abra la pantalla de configuración de Launchbar (Comando-Y) y agregue otra regla para su carpeta de conexiones. Ahora sus conexiones SSH se pueden abrir con LaunchBar. Creo que puede hacer algo similar con LaunchBar y Quicksilver, lo que permite el inicio rápido de sus accesos directos SSH.

Crear accesos directos ssh de acceso rápido

Antonio
fuente
1
¡Esta es ciertamente una forma agradable y rápida de abrir una terminal en un host remoto!
cmroanirgo
3

Para aquellos que usan una clave privada con su ssh y desean usar el método ~ / .ssh / config, pueden agregar un atributo 'IdentityFile' a su host seguido de la ruta de la clave. Es decir:

Host SomeServer
    User ubuntu
    HostName someserver.com
    IdentityFile ~/.ssh/private.key

Hubiera agregado este bit como comentario a una de las respuestas, pero mi reputación aún es baja y no se me permite hacerlo.

Tarek Koudsi
fuente
2

Si desea un archivo que pueda abrir para iniciar una sesión, puede hacer un .inetloc fácilmente. En TextEdit escriba una URL SSH a su host, por ejemplo:

ssh://username@hostname/path

TextEdit lo reconocerá como una URL. Arrastre la URL a su escritorio y creará un .inetloc así:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>URL</key>
    <string>ssh://username@hostname/path</string>
</dict>
</plist>

Luego puede colocar ese archivo en cualquier lugar, como su Dock, o abrirlo con un iniciador como Quicksilver.

Hubiera recomendado el complemento SSH para Quicksilver, pero lo último que puedo encontrar, v.84, bloquea QS más nuevo que β54 (3815).

Turadg
fuente
¿También puedes hacer eso con un puerto? Por ejemplo hostname:1234?
Daniel Beck
Sí. ssh: // username @ hostname: port también funciona.
Turadg
1

Si está utilizando Quicksilver, hay un gran complemento llamado RemoteHosts que escaneará automáticamente un archivo ~ / .hosts o incluso su archivo ~ / .ssh / known_hosts para autopoblar.

Conectarse a un nuevo host es tan rápido como abrir Quicksilver (CMD-Space) y luego escribir suficientes caracteres del host para ser únicos, y finalmente presionar enter.

ticklemeozmo
fuente
0

Si la parte que apesta para ti es escribir un comando ssh largo y complejo, pero no te importa abrir Terminal, y por alguna razón no quieres usar ninguno de los enfoques de las respuestas anteriores, entonces también puedes usar alias o funciones. Agregue algo como esto al shell dotfile (.profile o .bash_profile o .bashrc o .cshrc o .zshrc o lo que sea):

alias connect.dev='ssh -p 12345 [email protected]'

La única ventaja que puedo ver sobre otros enfoques es que (al menos en zsh, y creo que bash) puede usar la finalización de comandos para ver todos sus servidores para conectarse. Por ejemplo, supongamos que tiene 25 servidores diferentes a los que se conecta y no desea recordar todos los nombres / alias que les dio en el archivo .ssh / config. Si todos los alias comienzan con lo mismo, como 'conectar.', Simplemente escriba connect. [TAB] en el símbolo del sistema, y ​​verá todas las finalizaciones posibles. (Descargo de responsabilidad: es posible que deba realizar una personalización de shell para que funcione, pero creo que funcionará de forma predeterminada en zsh y probablemente también en bash).

Si la parte que apesta para ti es abrir Terminal, entonces podrías intentar usar algo como DuckBill , aunque las únicas razones que puedo pensar para ejecutar ssh FUERA de Terminal podrían ser para ejecutar programas de servidor X Windows o un túnel ssh.

iconoclasta
fuente
0

Puede crear un archivo en su directorio bin local

/usr/local/bin/dev

Con los siguientes contenidos:

#!/bin/bash
ssh -p 12345 [email protected] 

Hazlo ejecutable

chmod a+x /usr/local/bin/dev

Que luego puedes llamar desde la terminal usando

dev

Y luego creas una tarea automática para abrirla

tell application "Finder" to set theSel to selection

tell application "Terminal"
    set theFol to POSIX path of ((item 1 of theSel) as text)
    if (count of windows) is not 0 then
        do script "/usr/local/bin/dev2" in window 1
    else
        do script "/usr/local/bin/dev2"
    end if
    activate
end tell

También puede crear un acceso directo desde el iniciador o la tecla de acceso rápido en su teclado

Lanzador: Arrastre el icono del guardado automático en la barra de acoplamiento

Atajo de teclado:

create as service in automator
open system services -> keyboard -> shortcuts -> app shortcuts -> enter title of automator and key shortcut 
jason
fuente