Wie erstelle ich eine SSH-Verbindungsterminalverknüpfung unter Mac OS X?

Es ist scheiße, jedes Mal das Terminal zu öffnen und einen vollständigen SSH-Befehl zu schreiben. Wie kann ich eine SSH-Verbindung Terminal-Verknüpfung auf Mac OS X 10.6.8 (Snow Leopard)?

Ich habe auch einen benutzerdefinierten port zu verbinden.

Author: Hawili, 2009-11-28

10 answers

Die wichtigste * NIX-y-Antwort besteht darin, die Funktionen von SSH zu Ihrem Vorteil zu nutzen.

Erstellen Sie eine Datei mit dem Namen config in ~/.ssh/ (ein Ordner mit dem Namen .ssh in Ihrem Home-Ordner). 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
  • IdentityFile ist nicht obligatorisch, wenn kein Schlüssel verwendet wird.

    Um eine Verbindung herzustellen, geben Sie einfach

Ssh kompakt

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.

Zusätzlich können Sie eine erstellen .command file (eine einfache Textdatei mit der Erweiterung .befehl) mit der Befehlszeile, die Sie zum Herstellen einer Verbindung zum Server verwenden (ssh compy oder ssh -i ~/.ssh/my_rsa_key -p 90 [email protected]). Es wird im Terminal geöffnet und führt diesen Befehl aus.

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

Mehr lesen HIER

 96
Author: s4y,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-02-29 15:08:48

Sie haben ein paar Optionen, die ich mir vorstellen kann:

Erstellen .Befehl Datei

In Ihrem bevorzugten Texteditor erstellen Sie eine Nur-Text-Datei mit Ihrem ssh-Befehl zu speichern, zB.

ssh -p 23 [email protected]

Benennen Sie die Datei WHATEVERYOUWANT.command. Sie müssen dann die Datei .command mit Ausführungsrechten (chmod 755 /PATH/TO/WHATEVERYOUWANT.command) festlegen, aber Sie haben jetzt eine Datei, die beim Doppelklicken das Terminal öffnet und diesen Befehl ausführt.

Erstellen Sie Aliase für Ihre shell

Vorausgesetzt, Sie verwenden bash (die Standard-shell in Mac OS X) sie können Ihrem .bashrc in Ihrem Home-Ordner Aliase hinzufügen.

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

Mehr über Aliase findest du bei [Wikipedia] (http://en.wikipedia.org/wiki/Alias_ (befehl) oder durch Lesen der Dokumentation.

 12
Author: Chealion,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-09-03 09:17:47

Es gibt viele Möglichkeiten, dies zu tun. Hier ist, was ich Tue:

Terminal-Einstellungen öffnen

Duplizieren Sie Ihr Profil auf der Registerkarte Einstellungen mit dem Zahnradsymbol. Dies ändert Ihre Standardeinstellungsdatei, also ändern Sie Ihren alten Standard zurück zu dem, was es vor der Duplizierung war.

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

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

Sie können jetzt starten ihre Sitzung aus dem neuen Fenster oder Neue Registerkarte Menüpunkte, und natürlich eine Tastenkombination kann in Keyboard & Mouse in den Systemeinstellungen zugewiesen werden.

 7
Author: ridogi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-11-28 01:28:00

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
Author: Stephen Jennings,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-11-28 00:44:31

Um schnell eine SSH-Verbindung von fast überall auf Ihrem Mac zu öffnen, gehen Sie wie folgt vor:

  • Öffnen Sie TextEdit und geben Sie Ihre Verbindungszeichenfolge in Form von ein: ssh://[email protected]
  • Wählen Sie die gesamte Zeile aus und ziehen Sie sie per Drag & Drop auf die Desktop. Das Ergebnis ist eine *.inetloc Datei.
  • Verschieben Sie die Datei in eine beliebige ordner, den Sie mögen. Ich habe einen namens ~/connections , der alle meine *.inetloc - Dateien. Sie können diese Datei nach Belieben umbenennen und sogar das Symbol ändern.
  • Jetzt können Sie per Drag & Drop die Datei *.inetloc zu das Dock, die Seitenleiste oder die Symbolleiste des Finders oder an eine andere Stelle. (Es kann sogar mit Spotlight ausgewählt werden)
  • Wenn Sie LaunchBar verwenden, öffnen Sie die Launchbar Konfigurationsbildschirm (Befehl-Y) und fügen Sie eine weitere Regel für Ihre verbindungen-Ordner. Jetzt können Ihre SSH-Verbindungen geöffnet werden mit Launchbar. Ich glaube, Sie können ähnliches mit LaunchBar und tun Quicksilver, ermöglicht den schnellen Start Ihrer SSH-Verknüpfungen.

Schnellzugriffs-SSH-Verknüpfungen erstellen

 3
Author: Antonio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-08-22 12:54:02

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

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 gering und ich darf dies nicht tun.

 3
Author: Tarek Koudsi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-08-21 22:57:28

Wenn Sie eine Datei öffnen möchten, um eine Sitzung zu starten, können Sie eine erstellen .inetloc leicht. Geben Sie in TextEdit eine SSH-URL zu Ihrem Host ein, z. B.:

ssh://username@hostname/path

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

<?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 wie Ihrem Dock ablegen 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 QS ab neuer als β54 (3815).

 2
Author: Turadg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-01-31 17:41:57

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

Das Verbinden mit einem neuen Host ist so schnell wie das Öffnen von Quicksilver (CMD-Space) und das Eingeben von genügend Zeichen des Hosts, um eindeutig zu sein, und schließlich das Drücken der Eingabetaste.

 1
Author: ticklemeozmo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-05-16 17:14:29

Wenn der Teil, der für Sie saugt, einen langen und komplexen ssh-Befehl eingibt,es Ihnen jedoch nichts ausmacht, Terminal zu öffnen, und Sie aus irgendeinem Grund keinen der Ansätze der vorherigen Antworten verwenden möchten, können Sie auch Aliase oder Funktionen verwenden. Fügen Sie so etwas zu shell dotfile (.profil oder .bash_profile oder .bashrc oder .cshrc oder .der zshrc oder was auch immer):

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

Der einzige Vorteil, den ich gegenüber anderen Ansätzen sehen kann, ist, dass Sie (zumindest in zsh und ich denke bash) den Befehl verwenden können vervollständigung, um alle Ihre Server zu sehen, um eine Verbindung herzustellen. Nehmen wir zum Beispiel an, Sie haben 25 verschiedene Server, mit denen Sie eine Verbindung herstellen, und Sie möchten sich nicht an alle Namen/Aliase erinnern, die Sie ihnen in der gegeben haben .ssh/config-Datei. Wenn alle Aliase mit dem gleichen beginnen, wie " verbinden.', dann geben Sie einfach verbinden.[TAB] an der Eingabeaufforderung, und Sie werden alle möglichen Vervollständigungen sehen. (Haftungsausschluss: Möglicherweise müssen Sie einige Shell-Anpassungen vornehmen, damit dies funktioniert, aber ich glaube, es wird standardmäßig funktionieren in zsh und wahrscheinlich auch in bash.)

Wenn der Teil, der für Sie saugt, das Terminal öffnet, können Sie versuchen, etwas wie DuckBill zu verwenden, obwohl die einzigen Gründe, die ich mir vorstellen kann, ssh AUßERHALB des Terminals auszuführen, möglicherweise zum Ausführen von X Windows Server-Programmen oder einem SSH-Tunnel.

 0
Author: iconoclast,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-05-17 01:55:44

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

/usr/local/bin/dev

Mit folgendem Inhalt:

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

Mach es ausführbar

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

, die Sie dann vom Terminal aus mit

dev

Und Sie erstellen dann eine Automatoraufgabe, 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 auch eine Verknüpfung von Launcher oder Hotkey auf Ihrer Tastatur erstellen

Launcher: Ziehen Sie das Symbol aus Automator speichern in die Dockbar

Tastenkombination:

create as service in automator
open system services -> keyboard -> shortcuts -> app shortcuts -> enter title of automator and key shortcut 
 0
Author: jason,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-09-20 22:30:16