Come gestire più sessioni ssh con facilità su Mac OS X

8

Al mio prossimo lavoro gestirò molti server con accesso SSH. Sarà come ~ 100-120 host, con un nome utente diverso nella maggior parte degli host, e sono sicuro che non ricorderò ogni nome di dominio host, per non parlare del nome utente su ciascun host.

C'è uno strumento per Mac OS X (preferibilmente Lion) che mi permetterebbe di definire una sessione per ogni host (in una sessione intendo username e alcune opzioni ssh), mostrare l'elenco di tali sessioni e connettersi al clic / selezionare automaticamente?

    
posta kars7e 30.12.2011 - 01:48
fonte

3 risposte

6

Ci sono due modi in cui gestisco o ho visto persone gestire, dati SSH:

Buono 'ole, riga di comando, testo normale, ssh_config file.

Crea un file chiamato config all'interno di ~/.ssh . È possibile specificare i parametri globali posizionandoli sopra qualsiasi dichiarazione di host. Quando ho iniziato a utilizzare MacPorts , ho dovuto definire esplicitamente una chiave privata SSH predefinita da utilizzare automaticamente durante la connessione, così come la prima riga di il file che ho inserito;

IdentityFile ~/.ssh/id_rsa

Quando definisci le regole personalizzate per gli host (e puoi anche usare * come carattere jolly), sembra qualcosa del tipo:

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

Quindi quando eseguo ssh prod-script , ad esempio, tutte le altre regole vengono applicate automaticamente.

Un sacco di persone che non vogliono gestire manualmente tutte le loro cose in modo così ingombrante trovano rapidamente JellyfiSSH . ( Mac App Store Link . Anche le stesse persone sono diventate molto seccate quando hanno smesso di essere scaricate gratis.)

JellyfiSSH offre accesso alla GUI per quasi tutto ciò che può essere specificato nella riga di comando o nel file ssh_config. JellyfiSSH è solo un'app di archiviazione di configurazione per scopi organizzativi, poiché genera i comandi in base alle opzioni impostate e al clic facendo clic su Connetti, apre una nuova finestra di terminale con tutte le opzioni definite sulla riga di comando. JellyfiSSH non è un'app terminale da solo.

    
risposta data 30.12.2011 - 03:03
fonte
5

Puoi creare file come Example.command e renderlo eseguibile: chmod 755 Example.command e fai doppio clic sul file per aprire una connessione:

#!/bin/sh

exec /usr/bin/ssh [email protected]

exit 0

Se vuoi solo essere in grado di connetterti dalla riga di comando usando un alias (parola facile da ricordare), puoi impostarli in ~ / .ssh / config

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

Quindi puoi connetterti usando l'host foo

ssh foo

Oppure puoi semplicemente creare delle funzioni nel tuo file di configurazione della shell (~ / .bashrc o ~ / .zshenv):

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

quindi puoi connetterti a example.com semplicemente digitando s1 nella riga di comando e utilizzerà la verbosità di livello 1.

Infine, potresti usare il completamento automatico ssh, ma la sintassi per questo dipenderà dalla tua shell di scelta. Un rapido google per 'ssh autocomplete YourShellHere' dovrebbe mostrare alcuni esempi.

Utilizza una passphrase e il portachiavi OS X

La cosa più importante, IMO, è impostare ssh affinché funzioni con una passphrase. OS X ha una grande integrazione di portachiavi integrata da Leopard.

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

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

(Fonte: link .)

Quindi quando si esegue l'ssh su una nuova macchina, il portachiavi di OS X richiederà la passphrase di ssh

Vedi anche link per una descrizione più completa. L'articolo è più vecchio, ma Lion funziona allo stesso modo.

Non dimenticare Dropbox

Se accedi a più computer, puoi sincronizzare il tuo file ~/.ssh/config tramite Dropbox. Tengo il mio in ~/Dropbox/etc/ssh/config.txt e poi faccio:

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

Faccio la stessa cosa con il mio ~ / .zshenv:

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

In effetti, ho messo tutti i miei script di shell in ~ / Dropbox / bin / e ho aggiunto anche questo al mio $ PATH, solo per coprire tutte le mie basi.

    
risposta data 30.12.2011 - 04:43
fonte
-2

Puoi provare vSSH per Mac OS X ( PuTTY based).

  • Gestisci l'elenco delle connessioni (host, porta, nome utente, password, chiavi e molte altre impostazioni)
  • Può quasi tutto ciò che PuTTY può
  • Interfaccia multi-scheda multi-scheda
  • Supporto per le macro (script di shell come voci di menu per un accesso rapido)
  • sincronizzazione iCloud (connessioni, macro e chiavi) con vSSH e controllo SSH app per iOS

Disponibile nel Mac App Store .

    
risposta data 24.04.2014 - 16:18
fonte

Leggi altre domande sui tag