Comment créer un raccourci de terminal de connexion ssh sur Mac OS X?

27

Il suce d'ouvrir Terminal à chaque fois et d'écrire une commande SSH complète. Comment créer un raccourci de terminal de connexion SSH sur Mac OS X 10.6.8 (Snow Leopard)?

J'ai également un port personnalisé pour me connecter.

misha
la source

Réponses:

80

La réponse la plus * NIX-y est d'utiliser les fonctionnalités de SSH à votre avantage.

Créez un fichier nommé configdans ~/.ssh/(un dossier nommé .sshdans votre dossier de départ). Ajoutez une entrée pour chaque ordinateur auquel vous souhaitez vous connecter, comme ceci:

Host compy
    HostName 98.256.211.12
    Port 90
    User sidney
    IdentityFile ~/.ssh/my_rsa_key
  • HostName peut être soit une adresse IP, soit un nom d'hôte réel.
  • Port n'est pas obligatoire si vous utilisez le port SSH par défaut
  • IdentityFilen'est pas obligatoire si vous n'utilisez pas de clé.

    Ensuite, pour vous connecter, tapez simplement

ssh compy

Si vous utilisez l'authentification par clé et stockez le mot de passe de votre clé dans le trousseau, vous n'aurez même pas besoin d'entrer un mot de passe.

De plus, vous pouvez créer un fichier .command (un fichier texte avec l'extension .command) contenant la ligne de commande que vous utilisez pour vous connecter au serveur ( ssh compyou ssh -i ~/.ssh/my_rsa_key -p 90 [email protected]). Il s'ouvrira dans Terminal et exécutera cette commande.

Vous pouvez également utiliser l' New Remote Connection…élément de menu dans Terminal pour vous connecter. Ajoutez simplement votre hôte sous SSH en cliquant sur le +bouton dans la colonne de droite.

En savoir plus ICI

s4y
la source
J'ai utilisé cela en combinaison avec l'ajout de ma clé ssh au serveur. Vous pouvez pousser votre clé publique comme ceci 'ssh-copy-id -i .ssh / id_rsa.pub username: password @ remotehost'
jspooner
10

Vous avez quelques options auxquelles je peux penser:

Créer un fichier .command

Dans votre éditeur de texte préféré, créez un fichier texte en clair avec votre commande ssh, par exemple.

ssh -p 23 [email protected]

Nommez le fichier WHATEVERYOUWANT.command. Vous devez ensuite définir le .commandfichier avec les privilèges d'exécution ( chmod 755 /PATH/TO/WHATEVERYOUWANT.command), mais vous avez maintenant un fichier qui, lorsque vous double-cliquez dessus, ouvrira Terminal et exécutera cette commande.

Créez des alias pour votre shell

En supposant que vous utilisez bash (le shell par défaut sous Mac OS X), vous pouvez ajouter des alias à votre .bashrcdans votre dossier de départ.

par exemple. alias sshserver='ssh -p 23 [email protected]'

Vous pouvez trouver plus d'informations sur les alias sur [Wikipedia] ( http://en.wikipedia.org/wiki/Alias_(command) ou en lisant la documentation.

Chealion
la source
5

Il y a plusieurs façons de procéder. Voici ce que je fais:

Ouvrir les préférences du terminal

Dupliquez votre profil sur l'onglet Paramètres avec l'icône d'engrenage. Cela modifie votre fichier de paramètres par défaut, donc remplacez votre ancien par défaut par ce qu'il était avant la duplication.

Dans vos nouveaux paramètres personnalisés, cliquez sur Type de shell dans votre commande ssh dans la section Exécuter la commande au démarrage.

Renommez votre nouveau paramètre de Personnalisé en celui que vous voulez.

Vous pouvez maintenant démarrer votre session à partir des éléments de menu Nouvelle fenêtre ou Nouvel onglet, et bien sûr un raccourci clavier peut être attribué dans Clavier et souris dans les Préférences Système.

ridogi
la source
3

Vous pouvez créer un AppleScript qui exécutera une commande pour vous:

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

Pour ouvrir rapidement une connexion ssh à partir de presque n'importe où sur votre Mac, procédez comme suit:

  • Ouvrez TextEdit et saisissez votre chaîne de connexion sous la forme de: ssh://[email protected]
  • Sélectionnez la ligne entière et faites-la glisser sur le bureau. Le résultat sera un *.inetlocfichier.
  • Déplacez le fichier vers n'importe quel dossier que vous aimez. J'en ai fait un nommé ~/connectionsqui contient tous mes *.inetlocfichiers. Vous pouvez renommer ce fichier en ce que vous voulez et même changer son icône.
  • Vous pouvez maintenant faire glisser et déposer le *.inetlocfichier sur le Dock, la barre latérale ou la barre d'outils du Finder, ou n'importe où ailleurs. (Il peut même être sélectionné avec Spotlight)
  • Si vous utilisez LaunchBar, ouvrez l'écran de configuration de Launchbar (Commande-Y) et ajoutez une autre règle pour votre dossier de connexions. Maintenant, vos connexions SSH peuvent être ouvertes avec LaunchBar. Je pense que vous pouvez faire de même avec LaunchBar et Quicksilver, permettant un lancement rapide de vos raccourcis SSH.

Créer des raccourcis ssh à accès rapide

Antonio
la source
1
C'est certainement une façon agréable et rapide d'ouvrir un terminal sur un hôte distant!
cmroanirgo
3

Pour ceux qui utilisent une clé privée avec leur ssh et souhaitent utiliser la méthode ~ / .ssh / config, vous pouvez ajouter un attribut 'IdentityFile' à votre hôte suivi du chemin de clé. C'est à dire:

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

J'aurais ajouté ce bit en commentaire à l'une des réponses, mais ma réputation est encore faible et je ne suis pas autorisé à le faire.

Tarek Koudsi
la source
2

Si vous voulez un fichier que vous pouvez ouvrir pour lancer une session, vous pouvez facilement créer un .inetloc. Dans TextEdit, saisissez une URL SSH vers votre hôte, par exemple:

ssh://username@hostname/path

TextEdit reconnaîtra cela comme une URL. Faites glisser l'URL vers votre bureau et cela créera un .inetloc comme suit:

<?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>

Vous pouvez ensuite placer ce fichier n'importe où, comme votre Dock, ou l'ouvrir avec un lanceur tel que Quicksilver.

J'aurais recommandé le plugin SSH pour Quicksilver, mais la dernière version que je puisse trouver, v.84, plante QS plus récemment que β54 (3815).

Turadg
la source
Pouvez-vous également le faire avec un port? Par exemple hostname:1234?
Daniel Beck
Oui. ssh: // username @ hostname: le port fonctionne également.
Turadg
1

Si vous utilisez Quicksilver, il existe un excellent module complémentaire appelé RemoteHosts qui analysera automatiquement un fichier ~ / .hosts ou même votre fichier ~ / .ssh / known_hosts à remplir automatiquement.

La connexion à un nouvel hôte est aussi rapide que d'ouvrir Quicksilver (CMD-Space), puis de taper suffisamment de caractères de l'hôte pour être unique, et enfin d'appuyer sur Entrée.

ticklemeozmo
la source
0

Si la partie qui craint pour vous tape une commande ssh longue et complexe, mais cela ne vous dérange pas d'ouvrir Terminal, et pour une raison quelconque, vous ne voulez utiliser aucune des approches des réponses précédentes, vous pouvez également utiliser alias ou fonctions. Ajoutez quelque chose comme ça pour shell dotfile (.profile ou .bash_profile ou .bashrc ou .cshrc ou .zshrc ou autre):

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

Le seul avantage que je peux voir par rapport à d'autres approches est que (dans zsh au moins, et je pense que bash), vous pouvez utiliser la complétion de commande pour voir tous vos serveurs auxquels vous connecter. Par exemple, disons que vous avez 25 serveurs différents auxquels vous vous connectez et que vous ne voulez pas vous souvenir de tous les noms / alias que vous leur avez donnés dans le fichier .ssh / config. Si tous les alias commencent par la même chose, comme 'connect.', Alors vous tapez simplement connect. [TAB] à l'invite de commande, et vous verrez toutes les complétions possibles. (Avertissement: vous devrez peut-être personnaliser le shell pour que cela fonctionne, mais je pense que cela fonctionnera par défaut dans zsh et probablement aussi dans bash.)

Si la partie qui craint pour vous est d'ouvrir Terminal, vous pouvez essayer d'utiliser quelque chose comme DuckBill , bien que les seules raisons pour lesquelles je peux penser à exécuter ssh OUTSIDE of Terminal puissent être pour exécuter des programmes de serveur X Windows ou un tunnel ssh.

iconoclaste
la source
0

Vous pouvez créer un fichier dans votre répertoire bin local

/usr/local/bin/dev

Avec le contenu suivant:

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

Rendez-le exécutable

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

Vous pouvez ensuite appeler à partir du terminal en utilisant

dev

Et vous créez ensuite une tâche d'automatisme pour l'ouvrir

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

Vous pouvez également créer un raccourci à partir du lanceur ou du raccourci clavier sur votre clavier

Lanceur: faites glisser l'icône de la sauvegarde automatique dans le dockbar

Raccourci clavier:

create as service in automator
open system services -> keyboard -> shortcuts -> app shortcuts -> enter title of automator and key shortcut 
Jason
la source