9 votes

Comment gérer facilement plusieurs sessions ssh sur Mac OS X

Lors de mon prochain travail, je vais gérer de nombreux serveurs avec un accès SSH. Il y aura environ ~100-120 hôtes, avec des noms d'utilisateur différents sur la plupart des hôtes, et je suis assez sûr de ne pas me souvenir de chacun des noms de domaine des hôtes, sans parler du nom d'utilisateur sur chaque hôte.

Existe-t-il un outil pour Mac OS X (de préférence Lion) qui me permettrait de définir une session pour chaque hôte (dans une session je veux dire le nom d'utilisateur et quelques options SSH), afficher une liste de telles sessions et se connecter automatiquement en cliquant/sélectionnant?

7voto

Christopher Scott Points 665

Il existe deux façons de gérer, ou j'ai vu des gens gérer, les données SSH :

Bon vieux fichier ssh_config en ligne de commande, en texte clair.

Créez un fichier appelé config dans ~/.ssh. Vous pouvez spécifier des paramètres globaux en les mettant au-dessus de toute déclaration d'hôte. Lorsque j'ai commencé à utiliser MacPorts, j'ai dû définir explicitement une clé privée SSH par défaut à utiliser automatiquement lors de la connexion, donc j'ai mis en première ligne du fichier :

IdentityFile ~/.ssh/id_rsa

Lorsque vous définissez des règles personnalisées pour les hôtes (et vous pouvez même utiliser * comme un joker), cela ressemble à ceci :

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

Ensuite, lorsque j'exécute ssh prod-script par exemple, toutes les autres règles s'appliquent automatiquement.


Beaucoup de personnes qui ne veulent pas gérer manuellement toutes leurs données de manière aussi fastidieuse trouvent rapidement JellyfiSSH. (Lien vers l'App Store Mac. Les même personnes sont également devenues très ennuyées lorsqu'il a cessé d'être téléchargeable gratuitement.)

JellyfiSSH vous donne un accès GUI à presque tout ce qui peut être spécifié en ligne de commande ou dans le fichier ssh_config. JellyfiSSH est simplement une application de stockage de configuration à des fins d'organisation, car elle génère les commandes en fonction des options que vous définissez et, en cliquant sur connecter, ouvre une nouvelle fenêtre de terminal avec toutes vos options définies en ligne de commande. JellyfiSSH n'est pas une application de terminal en soi.

5voto

moodforaday Points 2633

Vous pouvez créer des fichiers tels que Example.command puis les rendre exécutables : chmod 755 Example.command et double-cliquer sur le fichier pour ouvrir une connexion :

#!/bin/sh

exec /usr/bin/ssh nom_utilisateur@exemple.com

exit 0

Si vous souhaitez simplement pouvoir vous connecter en ligne de commande en utilisant un alias (mot facile à retenir), vous pouvez les configurer dans ~/.ssh/config

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

Ensuite, vous pouvez vous connecter en utilisant l'hôte foo

ssh foo

Ou vous pouvez simplement créer des fonctions dans votre fichier de configuration de shell (~/.bashrc ou ~/.zshenv) :

s1 () {
    ssh -v nom_utilisateur@exemple.com
}

ensuite, vous pouvez vous connecter à exemple.com en tapant simplement s1 dans la ligne de commande, et cela utilisera le niveau 1 de la verbosité.

Enfin, vous pouvez utiliser l'autocomplétion ssh, mais la syntaxe dépendra de votre shell. Une recherche rapide sur 'ssh autocomplete YourShellHere' devrait vous donner quelques exemples.

Utiliser une phrase secrète et le trousseau OS X

La chose la plus importante, à mon avis, est de configurer ssh pour fonctionner avec une phrase secrète. OS X a une excellente intégration avec le trousseau depuis Leopard.

ssh-keygen -t dsa -f ~/.ssh/id_dsa -C "vous@exempledomaine.com"

cat ~/.ssh/id_dsa.pub | ssh vous@hote.domaine 'cat - >> ~/.ssh/authorized_keys'

(Source : http://www.paosborne.com/blog/?p=369.)

Ensuite, lorsque vous vous connectez en ssh sur une nouvelle machine, le trousseau OS X vous demandera votre phrase secrète ssh

Voir aussi http://www.dribin.org/dave/blog/archives/2007/11/28/ssh_agent_leopard/ pour une description plus détaillée. L'article est ancien, mais Lion fonctionne de la même manière.

N'oubliez pas Dropbox

Si vous vous connectez à plusieurs machines, vous pouvez synchroniser votre fichier ~/.ssh/config via Dropbox. Je garde le mien dans ~/Dropbox/etc/ssh/config.txt et ensuite je fais :

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

Je fais la même chose avec mon ~/.zshenv :

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

En fait, je mets tous mes scripts shell dans ~/Dropbox/bin/ et je les ajoute à mon $PATH aussi, juste pour être sûr de tout couvrir.

-2voto

whoami Points 59

Vous pouvez essayer l'application vSSH pour Mac OS X (basée sur PuTTY).

  • Gérer la liste de connexions (hôte, port, nom d'utilisateur, mot de passe, clés et de nombreux autres paramètres)
  • Peut presque tout faire que PuTTY
  • Interface multi-onglets multi-fenêtres
  • Support des macros (vous pouvez utiliser des scripts shell comme éléments de menu pour un accès rapide)
  • Synchronisation iCloud (connexions, macros et clés) avec les applications vSSH et SSH control pour iOS

Disponible sur le Mac AppStore.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X