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


9

Lors de mon prochain travail, je gérerai de nombreux serveurs avec accès SSH. Ce sera comme ~ 100-120 hôtes, avec un nom d'utilisateur différent sur la plupart des hôtes, et je suis presque sûr que je ne me souviendrai pas de chaque nom de domaine hôte, sans parler du nom d'utilisateur sur chaque hôte.

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

Réponses:


6

Il y a deux façons de gérer ou de voir des personnes gérer les données SSH:

Bon 'ole, ligne de commande, texte brut, fichier ssh_config .

Créez un fichier appelé à l' configintérieur ~/.ssh. Vous pouvez spécifier des paramètres globaux en les plaçant 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, de sorte que la toute première ligne du fichier que je mets;

IdentityFile ~/.ssh/id_rsa

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

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

Ensuite, lorsque je cours ssh prod-scriptpar exemple, toutes les autres règles sont appliquées automatiquement.


Beaucoup de gens qui ne veulent pas gérer manuellement tous leurs trucs d'une manière aussi lourde trouvent rapidement JellyfiSSH . ( Mac App Store Link . Les mêmes personnes sont également devenues très ennuyées quand il a cessé d'être téléchargeable gratuitement.)

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


JellyfiSSH ressemble à l'application que je cherchais. Merci!
kars7e

FYI: à man ssh_configpartir du terminal fournira des informations sur les fichiers de configuration du client OpenSSH SSH disponibles sur votre installation système actuelle. Ce qui, au moment du commentaire, est plus récent que le lien développeur ci-dessus.
l --marc l

5

Vous pouvez créer des fichiers tels que Example.commandle rendre exécutable: chmod 755 Example.commandet double-cliquez sur le fichier pour ouvrir une connexion:

#!/bin/sh

exec /usr/bin/ssh username@example.com

exit 0

Si vous voulez simplement pouvoir vous connecter depuis la 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 shell (~ / .bashrc ou ~ / .zshenv):

s1 () {
    ssh -v username@example.com
}

alors vous pouvez vous connecter example.comjuste en tapant s1sur la ligne de commande, et il utilisera le niveau de verbosité de niveau 1.

Enfin, vous pouvez utiliser l'auto-complétion ssh, mais la syntaxe dépendra du shell de votre choix. Un rapide google pour 'ssh autocomplete YourShellHere' devrait donner quelques exemples.

Utiliser une phrase secrète et le trousseau OS X

La chose la plus importante, IMO, est de configurer ssh pour qu'il fonctionne avec une phrase secrète. OS X a une grande intégration de trousseau intégrée depuis Leopard.

ssh-keygen -t dsa -f ~/.ssh/id_dsa -C "you@exampledomain.com"

cat ~/.ssh/id_dsa.pub | ssh you@host.domain 'cat – >> ~/.ssh/authorized_keys'

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

Ensuite, lorsque vous accédez à une nouvelle machine, le trousseau OS X vous demandera votre phrase secrète ssh

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

N'oubliez pas Dropbox

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

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

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

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

En fait, j'ai mis tous mes scripts shell dans ~ / Dropbox / bin / et l'ai ajouté à mon $ PATH aussi, juste pour couvrir toutes mes bases.


Dropbox est un excellent endroit pour stocker des scripts shell que je ne veux pas gérer dans git / sur GitHub. Merci d'avoir déclenché ce moment 'aha', TJ!
Jason Salaz

-2

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

  • Gérer la liste des connexions (hôte, port, nom d'utilisateur, mot de passe, clés et beaucoup d'autres paramètres)
  • Peut presque tout ce que PuTTY peut
  • Interface multi-onglets multi-fenêtres
  • Prise en charge des macros (vous interprétez les scripts comme des éléments de menu pour un accès rapide)
  • Synchronisation iCloud (connexions, macros et clés) avec les applications de contrôle vSSH et SSH pour iOS

Disponible sur le Mac AppStore .


Bienvenue sur Ask Different! Veuillez lire le centre d'aide concernant l'autopromotion et inclure une clause de non-responsabilité si vous êtes l'auteur du produit dans votre réponse.
grg

1
Comment cela permet-il réellement une liste cliquable de sessions? Si vous pouviez éditer une partie du marketing générique et concentrer cela sur la question exacte à portée de main, cela obtiendra probablement une meilleure réaction.
bmike
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.