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


27

Fa schifo per aprire Terminal ogni volta e scrivere un comando SSH completo. Come posso creare un collegamento al terminale SSH Collegamento su Mac OS X 10.6.8 (Snow Leopard)?

Ho anche una porta personalizzata a cui connettermi.

Risposte:


80

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

Crea un file chiamato configin ~/.ssh/(una cartella nominata .sshnella tua cartella home). Aggiungi una voce per ogni computer a cui desideri 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
  • IdentityFilenon è obbligatorio se non si utilizza una chiave.

    Quindi, per connettersi, basta digitare

ssh compy

Se usi l'autenticazione basata su chiave e memorizzi la password della chiave nel Portachiavi, non dovrai nemmeno inserire una password.

Inoltre, è possibile creare un file .command (un file di testo semplice con estensione .command) contenente la riga di comando utilizzata per connettersi al server ( ssh compyo ssh -i ~/.ssh/my_rsa_key -p 90 sidney@98.256.211.12). Si aprirà in Terminale ed eseguirà quel comando.

È inoltre possibile utilizzare la New Remote Connection…voce di menu in Terminale per connettersi. Aggiungi il tuo host in SSH facendo clic sul +pulsante nella colonna di destra.

Leggi di più QUI


L'ho usato in combinazione con l'aggiunta della mia chiave ssh al server. Puoi spingere la tua chiave pubblica in questo modo 'ssh-copy-id -i .ssh / id_rsa.pub username: password @ remotehost'
jspooner

10

Hai un paio di opzioni a cui posso pensare:

Crea un file .command

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

ssh -p 23 admin@server.example.com

Assegna un nome al file WHATEVERYOUWANT.command. È quindi necessario impostare il .commandfile 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à quel comando.

Crea alias per la tua shell

Supponendo che tu stia usando bash (la shell predefinita in Mac OS X) puoi aggiungere alias .bashrcnella tua cartella home.

per esempio. alias sshserver='ssh -p 23 admin@server.example.com'

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


5

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. Ciò modifica il file delle impostazioni predefinite, quindi ripristina il vecchio predefinito a quello che era prima della duplicazione.

Nelle nuove impostazioni personalizzate fare clic su Shell digitare il comando ssh nella sezione Esegui comando all'avvio.

Rinomina la tua nuova impostazione da Personalizzata come preferisci.

Ora puoi 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.


3

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

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

3

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://user@host.com
  • Seleziona l'intera riga e trascinala sul desktop. Il risultato sarà un *.inetlocfile.
  • Sposta il file in qualsiasi cartella che ti piace. Ne ho creato uno ~/connectionsche contiene tutti i miei *.inetlocfile. Puoi rinominare questo file come preferisci e persino cambiarne l'icona.
  • Ora puoi trascinare e rilasciare il *.inetlocfile nel Dock, nella barra laterale del Finder o nella barra degli strumenti o in qualsiasi altro luogo. (Può anche essere selezionato con Spotlight)
  • Se si utilizza LaunchBar, aprire la schermata di 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 qualcosa di simile con LaunchBar e Quicksilver, consentendo l'avvio rapido delle scorciatoie SSH.

Crea scorciatoie ssh ad accesso rapido


1
Questo è sicuramente un modo semplice e veloce per aprire un terminale su un host remoto!
cmroanirgo,

3

Per coloro che usano una chiave privata con il loro ssh e vogliono usare il metodo ~ / .ssh / config puoi aggiungere un attributo 'IdentityFile' al tuo host seguito dal percorso della chiave. Vale a dire:

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

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


2

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

ssh://username@hostname/path

TextEdit lo riconoscerà come un URL. Trascina l'URL sul desktop e creerà un .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://username@hostname/path</string>
</dict>
</plist>

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

Avrei raccomandato il plugin SSH per Quicksilver, ma l'ultimo che posso trovare, v.84, arresta in modo anomalo QS più recente di β54 (3815).


Puoi farlo anche con una porta? Ad esempio hostname:1234?
Daniel Beck

Sì. ssh: // username @ hostname: port funziona anche.
Turadg,

1

Se stai usando Quicksilver, c'è un ottimo componente aggiuntivo chiamato RemoteHosts che scansionerà automaticamente un file ~ / .hosts o anche il tuo file ~ / .ssh / known_hosts per eseguire automaticamente il pop-up.

La connessione a un nuovo host è rapida come l'apertura di Quicksilver (CMD-Space) e la digitazione di un numero sufficiente di caratteri dell'host per essere univoci e infine premere Invio.


0

Se la parte che fa schifo 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, allora puoi anche usare alias o funzioni. Aggiungi qualcosa del genere a shell dotfile (.profile o .bash_profile o .bashrc o .cshrc o .zshrc o altro):

alias connect.dev='ssh -p 12345 yourusername@dev.somehost.net'

L'unico vantaggio che posso vedere rispetto ad altri approcci è che (almeno in zsh, e penso bash) è possibile utilizzare il completamento del comando per vedere tutti i server a cui connettersi. Ad esempio, supponiamo che tu abbia 25 server diversi a cui ti connetti e non vuoi ricordare tutti i nomi / alias che hai dato loro nel file .ssh / config. Se tutti gli alias iniziano con la stessa cosa, come "connetti", allora digita connect. [TAB] al prompt dei comandi e vedrai tutti i possibili completamenti. (Dichiarazione di non responsabilità: potrebbe essere necessario personalizzare la shell per farlo funzionare, ma credo che funzionerà di default in zsh e probabilmente anche in bash.)

Se la parte che fa schifo per te sta aprendo Terminal, allora potresti provare a usare qualcosa come DuckBill , anche se le uniche ragioni che posso pensare di eseguire ssh OUTSIDE of Terminal potrebbero essere per l'esecuzione di programmi server X Windows o un tunnel ssh.


0

È possibile creare un file nella directory bin locale

/usr/local/bin/dev

Con i seguenti contenuti:

#!/bin/bash
ssh -p 12345 username@www.mydomain.com 

Renderlo eseguibile

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

Che poi puoi chiamare dal terminale usando

dev

E poi crei un'attività di automazione per aprirla

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 pulsante di avvio o dal tasto di scelta rapida 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 
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.