it-swarm-eu.dev

Come creare una connessione ssh Collegamento terminale su Mac OS X?

Fa schifo ad aprire Terminal ogni volta e scrive un comando SSH completo. Come posso creare una connessione SSH Collegamento terminale su Mac OS X 10.6.8 (Snow Leopard)?

Ho anche una porta personalizzata a cui connettermi.

26
misha

La risposta più * NIX-y è quella di utilizzare le funzionalità di SSH a proprio vantaggio.

Crea un file chiamato config in ~/.ssh/ (una cartella chiamata .ssh nella tua cartella home). Aggiungi una voce per ogni computer a cui vuoi connetterti, in questo modo:

Host compy
    HostName 98.256.211.12
    Port 90
    User sidney
    IdentityFile ~/.ssh/my_rsa_key
  • HostName può essere un indirizzo IP o un nome host effettivo.
  • Port non è obbligatorio se si utilizza la porta SSH predefinita
  • IdentityFile non è obbligatorio se non si utilizza una chiave.

    Quindi, per connetterti, digita semplicemente

ssh compy

Se si utilizza l'autenticazione basata su chiave e si memorizza la password della chiave nel portachiavi, non sarà nemmeno necessario inserire una password.

Inoltre, è possibile creare un file .command (un file di testo semplice con estensione .command) contenente la riga di comando che si utilizza per connettersi al server (ssh compy o ssh -i ~/.ssh/my_rsa_key -p 90 [email protected]). Si aprirà in Terminale ed eseguirà quel comando.

Puoi anche utilizzare la voce di menu New Remote Connection… in Terminale per connetterti. Basta aggiungere il tuo Host sotto SSH facendo clic sul + pulsante nella colonna di destra.

Maggiori informazioni HERE

78
s4y

Hai un paio di opzioni a cui posso pensare:

Crea un file di comando

Nel tuo editor di testo preferito crea un file di testo in chiaro con il tuo comando ssh, ad es.

ssh -p 23 [email protected]

Denominare il file WHATEVERYOUWANT.command. È quindi necessario impostare il file .command con i privilegi di esecuzione (chmod 755 /PATH/TO/WHATEVERYOUWANT.command) ma ora si dispone di un file che quando si fa doppio clic aprirà Terminal ed eseguirà tale comando.

Crea alias per la tua shell

Supponendo che stai usando bash (la shell di default in Mac OS X) puoi aggiungere alias .bashrc nella tua cartella home.

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

Puoi trovare ulteriori informazioni sugli alias su [Wikipedia] ( http://en.wikipedia.org/wiki/Alias_ (command) o leggendo la documentazione .

10
Chealion

Ci sono molti modi per farlo. Ecco cosa faccio:

Apri le preferenze del terminale

Duplica il tuo profilo nella scheda Impostazioni con l'icona a forma di ingranaggio. Questo cambia il tuo file delle impostazioni di default, quindi cambia il tuo vecchio valore di default a quello che era prima della duplicazione.

Nelle tue nuove impostazioni personalizzate fai clic sul tipo di shell nel comando ssh nella sezione Esegui comando all'avvio.

Rinomina la tua nuova impostazione da Personalizzata a ciò che vuoi.

È ora possibile avviare la sessione dalle voci di menu Nuova finestra o Nuova scheda e, naturalmente, è possibile assegnare una scorciatoia da tastiera in Tastiera e Mouse in Preferenze di sistema.

5
ridogi

Per coloro che usano una chiave privata con il proprio ssh e vogliono usare il metodo ~/.ssh/config, è possibile aggiungere un attributo 'IdentityFile' al proprio Host seguito dal percorso chiave. vale a dire:

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

Avrei aggiunto questo commento come commento a una delle risposte, ma la mia reputazione è ancora bassa e non mi è permesso farlo.

3
Tarek Koudsi

Per aprire rapidamente una connessione ssh da quasi ovunque sul tuo Mac, procedi come segue:

  • Apri TextEdit e digita la stringa di connessione sotto forma di: ssh://[email protected]
  • Seleziona l'intera linea e trascinala sul desktop. Il risultato sarà un file *.inetloc.
  • Sposta il file in qualsiasi cartella che ti piace. Ne ho creato uno chiamato ~/connections che contiene tutti i miei file *.inetloc. Puoi rinominare questo file in qualsiasi modo e persino cambiare la sua icona.
  • Ora puoi trascinare e rilasciare il file *.inetloc nel Dock, nella barra laterale del Finder o nella barra degli strumenti, o in qualsiasi altro punto. (Può anche essere selezionato con Spotlight)
  • Se si utilizza LaunchBar, aprire la schermata Configurazione della barra di avvio (Comando-Y) e aggiungere un'altra regola per la cartella delle connessioni. Ora le tue connessioni SSH possono essere aperte con LaunchBar. Credo che tu possa fare lo stesso con LaunchBar e Quicksilver, consentendo il rapido avvio delle tue scorciatoie SSH.

Crea scorciatoie ssh ad accesso rapido

3
Antonio

Puoi creare un AppleScript che eseguirà un comando per te:

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

Se vuoi un file che puoi aprire per avviare una sessione, puoi creare facilmente un file .inetloc. In TextEdit digita un URL SSH per il tuo host, ad esempio:

ssh://[email protected]/path

TextEdit lo riconoscerà come un URL. Trascina l'URL sul desktop e creerà un file .inetloc in questo modo:

<?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://[email protected]/path</string>
</dict>
</plist>

È quindi possibile posizionare quel file ovunque, come il Dock, o aprirlo con un launcher come Quicksilver.

Avrei raccomandato il plugin SSH per Quicksilver, ma l'ultima che riesco a trovare, v.84, causa un crash di QS più recente di β54 (3815).

2
Turadg

Se si utilizza Quicksilver, è disponibile un grande componente aggiuntivo chiamato RemoteHosts che esegue automaticamente la scansione di un file ~/.hosts o anche del proprio file ~/.ssh/known_hosts per l'autopopolazione.

Connettersi a un nuovo host è rapido come aprire Quicksilver (CMD-Space) e quindi digitare un numero sufficiente di caratteri dell'host per essere univoci, e infine premere invio.

1
ticklemeozmo

È possibile creare un file nella directory bin locale

/usr/local/bin/dev

Con i seguenti contenuti:

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

Rendilo eseguibile

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

Che poi puoi chiamare dal terminale usando

dev

E quindi creare un'attività di automazione per aprirlo

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

Puoi anche creare una scorciatoia dal launcher o hotkey sulla tastiera

Launcher: trascina l'icona dal salvataggio automatico nella dockbar

Scorciatoia da tastiera:

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

Se la parte che fa per te sta digitando un comando ssh lungo e complesso, ma non ti dispiace aprire Terminal, e per qualche motivo non vuoi usare nessuno degli approcci delle risposte precedenti, puoi anche usare alias o funzioni. Aggiungi qualcosa come questo a Shell dotfile (.profile o .bash_profile o .bashrc o .cshrc o .zshrc o qualsiasi altra cosa):

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

L'unico vantaggio che posso vedere rispetto ad altri approcci è che (almeno in zsh, e penso bash) puoi usare il completamento dei comandi per vedere tutti i tuoi server a cui connettersi. Ad esempio, diciamo che hai 25 diversi server a cui ti colleghi e non vuoi ricordare tutti i nomi/alias che hai dato nel file .ssh/config. Se tutti gli alias iniziano con la stessa cosa, come 'connect.', Quindi basta digitare connect. [TAB] al prompt del comando, e vedrai tutti i possibili completamenti. (Disclaimer: potresti aver bisogno di fare qualche personalizzazione della Shell per farlo funzionare, ma credo che funzionerà di default in zsh e probabilmente anche in bash.)

Se la parte che fa per te sta aprendo Terminal, allora potresti provare a usare qualcosa come DuckBill , anche se l'unica ragione per cui posso pensare di eseguire ssh OUTSIDE di Terminale potrebbe essere per l'esecuzione di programmi server X Windows o un tunnel ssh.

0
iconoclast