Wie erstelle ich eine ssh-Verbindung Terminal-Verknüpfung unter Mac OS X?


27

Es ist schade, jedes Mal das Terminal zu öffnen und einen vollständigen SSH-Befehl zu schreiben. Wie kann ich unter Mac OS X 10.6.8 (Snow Leopard) eine Verknüpfung zum SSH-Verbindungsterminal erstellen?

Ich habe auch einen benutzerdefinierten Anschluss, mit dem ich mich verbinden kann.

Antworten:


80

Die * NIX-y-Lösung besteht darin, die Funktionen von SSH zu Ihrem Vorteil zu nutzen.

Erstellen Sie eine Datei mit dem Namen configin ~/.ssh/(einem Ordner, der .sshin Ihrem Basisordner angegeben ist). Fügen Sie für jeden Computer, mit dem Sie eine Verbindung herstellen möchten, einen Eintrag wie folgt hinzu:

Host compy
    HostName 98.256.211.12
    Port 90
    User sidney
    IdentityFile ~/.ssh/my_rsa_key
  • HostName kann entweder eine IP-Adresse oder ein tatsächlicher Hostname sein.
  • Port ist nicht obligatorisch, wenn der Standard-SSH-Port verwendet wird
  • IdentityFileist nicht obligatorisch, wenn kein Schlüssel verwendet wird.

    Geben Sie zum Verbinden einfach Folgendes ein

ssh compy

Wenn Sie die schlüsselbasierte Authentifizierung verwenden und das Kennwort Ihres Schlüssels im Schlüsselbund speichern, müssen Sie nicht einmal ein Kennwort eingeben.

Darüber hinaus können Sie eine Befehlsdatei (eine Nur-Text-Datei mit der Erweiterung .command) erstellen, die die Befehlszeile enthält, mit der Sie eine Verbindung zum Server herstellen ( ssh compyoder ssh -i ~/.ssh/my_rsa_key -p 90 sidney@98.256.211.12). Es öffnet sich in Terminal und führt diesen Befehl aus.

Sie können auch den New Remote Connection…Menüpunkt im Terminal verwenden, um eine Verbindung herzustellen. Fügen Sie einfach Ihren Host unter SSH hinzu, indem Sie auf die +Schaltfläche in der rechten Spalte klicken .

Lesen Sie mehr HIER


Ich habe dies in Kombination mit dem Hinzufügen meines SSH-Schlüssels zum Server verwendet. Sie können Ihren öffentlichen Schlüssel wie folgt pushen: 'ssh-copy-id -i .ssh / id_rsa.pub Benutzername: password @ remotehost'
jspooner

10

Sie haben ein paar Möglichkeiten, die ich mir vorstellen kann:

Erstellen Sie eine Befehlsdatei

Erstellen Sie in Ihrem bevorzugten Texteditor eine einfache Textdatei mit Ihrem ssh-Befehl, z.

ssh -p 23 admin@server.example.com

Benennen Sie die Datei WHATEVERYOUWANT.command. Anschließend müssen Sie die .commandDatei mit den Ausführungsberechtigungen ( chmod 755 /PATH/TO/WHATEVERYOUWANT.command) einrichten. Jetzt haben Sie jedoch eine Datei, die beim Doppelklicken das Terminal öffnet und diesen Befehl ausführt .

Erstellen Sie Aliase für Ihre Shell

Angenommen, Sie verwenden bash (die Standard-Shell in Mac OS X), können Sie Aliase zu Ihrem .bashrcin Ihrem privaten Ordner hinzufügen .

z.B. alias sshserver='ssh -p 23 admin@server.example.com'

Weitere Informationen zu Aliasnamen finden Sie unter [Wikipedia] ( http://en.wikipedia.org/wiki/Alias_(command) oder in der Dokumentation.


5

Dafür gibt es viele Möglichkeiten. Folgendes mache ich:

Öffnen Sie die Terminaleinstellungen

Duplizieren Sie Ihr Profil auf der Registerkarte Einstellungen mit dem Zahnradsymbol. Hierdurch wird Ihre Standardeinstellungsdatei geändert. Ändern Sie daher Ihre alten Standardeinstellungen auf die vor dem Duplizieren vorgenommenen Änderungen.

Klicken Sie in Ihren neuen benutzerdefinierten Einstellungen in Ihrem Befehl ssh im Abschnitt Befehl beim Start ausführen auf Shell-Typ.

Benennen Sie Ihre neue Einstellung von Benutzerdefiniert in eine beliebige Einstellung um.

Sie können Ihre Sitzung jetzt über die Menüelemente "Neues Fenster" oder "Neuer Tab" starten. Selbstverständlich kann in den Systemeinstellungen unter "Tastatur und Maus" eine Tastenkombination zugewiesen werden.


3

Sie können ein AppleScript erstellen, das einen Befehl für Sie ausführt:

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

3

Gehen Sie wie folgt vor, um eine SSH-Verbindung von nahezu jedem Ort auf Ihrem Mac aus schnell zu öffnen:

  • Öffnen Sie TextEdit und geben Sie Ihre Verbindungszeichenfolge in folgender Form ein: ssh://user@host.com
  • Wählen Sie die gesamte Linie aus und ziehen Sie sie auf den Desktop. Das Ergebnis ist eine *.inetlocDatei.
  • Verschieben Sie die Datei in einen beliebigen Ordner. Ich habe einen Namen erstellt ~/connections, der alle meine *.inetlocDateien enthält. Sie können diese Datei beliebig umbenennen und sogar das Symbol ändern.
  • Jetzt können Sie die *.inetlocDatei per Drag & Drop in das Dock, in die Seitenleiste oder in die Symbolleiste des Finders oder an eine andere Stelle ziehen. (Es kann sogar mit Spotlight ausgewählt werden)
  • Wenn Sie LaunchBar verwenden, öffnen Sie den Bildschirm Launchbar-Konfiguration (Befehlstaste-Y) und fügen Sie eine weitere Regel für Ihren Verbindungsordner hinzu. Jetzt können Ihre SSH-Verbindungen mit LaunchBar geöffnet werden. Ich glaube, dass Sie mit LaunchBar und Quicksilver ähnliche Aktionen ausführen können, um Ihre SSH-Verknüpfungen schnell zu starten.

Erstellen Sie Schnellzugriffs-SSH-Verknüpfungen


1
Dies ist sicherlich eine schöne und schnelle Möglichkeit, ein Terminal auf einem Remote-Host zu öffnen!
Cmroanirgo

3

Für diejenigen, die einen privaten Schlüssel mit ihrem ssh verwenden und die ~ / .ssh / config-Methode verwenden möchten, können Sie Ihrem Host ein 'IdentityFile'-Attribut hinzufügen, dem der Schlüsselpfad folgt. Dh:

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

Ich hätte dieses Bit als Kommentar zu einer der Antworten hinzugefügt, aber mein Ruf ist immer noch niedrig und ich darf das nicht.


2

Wenn Sie eine Datei zum Starten einer Sitzung öffnen möchten, können Sie ganz einfach eine .inetloc-Datei erstellen. Geben Sie in TextEdit eine SSH-URL zu Ihrem Host ein, z.

ssh://username@hostname/path

TextEdit erkennt dies als URL. Ziehen Sie die URL auf Ihren Desktop und es wird ein .inetloc wie folgt erstellt:

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

Sie können diese Datei dann an einer beliebigen Stelle platzieren, z. B. in Ihrem Dock, oder mit einem Launcher wie Quicksilver öffnen.

Ich hätte das SSH-Plugin für Quicksilver empfohlen, aber das neueste, das ich finden kann, v.84, stürzt ab QS neuer als β54 (3815).


Kannst du das auch mit einem Port machen? ZB hostname:1234?
Daniel Beck

Ja. ssh: // benutzername @ hostname: port funktioniert auch.
Turadg

1

Wenn Sie Quicksilver verwenden, gibt es ein großartiges Add-On namens RemoteHosts, das automatisch eine ~ / .hosts-Datei oder sogar Ihre ~ / .ssh / known_hosts-Datei scannt, um sie automatisch auszufüllen.

Das Herstellen einer Verbindung zu einem neuen Host erfolgt so schnell wie das Öffnen von Quicksilver (CMD-Space), das Eingeben von Zeichen, um eindeutig zu sein, und das Drücken der Eingabetaste.


0

Wenn der Teil, der Sie nervt, die Eingabe eines langen und komplexen ssh-Befehls ist, es Ihnen aber nichts ausmacht, Terminal zu öffnen, und Sie aus irgendeinem Grund keinen der Ansätze der vorherigen Antworten verwenden möchten, können Sie auch verwenden Aliase oder Funktionen. Fügen Sie der Shell-Dot-Datei Folgendes hinzu (.profile oder .bash_profile oder .bashrc oder .cshrc oder .zshrc oder was auch immer):

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

Der einzige Vorteil, den ich gegenüber anderen Ansätzen sehen kann, ist, dass Sie (zumindest in zsh und ich denke bash) die Befehlsvervollständigung verwenden können, um alle Server zu sehen, mit denen eine Verbindung hergestellt werden kann. Angenommen, Sie haben 25 verschiedene Server, mit denen Sie eine Verbindung herstellen, und möchten sich nicht alle Namen / Aliase merken, die Sie in der Datei .ssh / config angegeben haben. Wenn alle Aliase mit dem gleichen Wort beginnen, z. B. 'connect.', Geben Sie an der Eingabeaufforderung einfach connect. [TAB] ein, und Sie sehen alle möglichen Vervollständigungen. (Haftungsausschluss: Möglicherweise müssen Sie einige Shell-Anpassungen vornehmen, damit dies funktioniert, aber ich glaube, dass dies standardmäßig in zsh und wahrscheinlich auch in bash funktioniert.)

Wenn der Teil, der Sie nervt, das Öffnen von Terminal ist, könnten Sie versuchen, so etwas wie DuckBill zu verwenden , obwohl die einzigen Gründe, die mir in den Sinn kommen , ssh AUSSERHALB von Terminal auszuführen , möglicherweise darin bestehen, X Windows-Serverprogramme oder einen ssh-Tunnel auszuführen.


0

Sie können eine Datei in Ihrem lokalen bin-Verzeichnis erstellen

/usr/local/bin/dev

Mit folgenden Inhalten:

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

Mach es ausführbar

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

Womit Sie dann vom Terminal aus telefonieren können

dev

Anschließend erstellen Sie eine Automator-Task, um sie zu öffnen

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

Sie können eine Verknüpfung auch über das Startprogramm oder den Hotkey auf Ihrer Tastatur erstellen

Launcher: Ziehen Sie das Symbol vom Automator-Speicher in die Dockbar

Tastaturkürzel:

create as service in automator
open system services -> keyboard -> shortcuts -> app shortcuts -> enter title of automator and key shortcut 
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.