Legen Sie iTerm2 als URL-Handler für ssh:// fest

Derzeit ist Terminal so eingestellt, dass es SSH-URLs verarbeitet. Wenn ich zum Beispiel mache:

$ open ssh://machine.example.com

Dann wird eine neue SSH-Sitzung im Terminal erstellt. Ich möchte, dass diese stattdessen in iTerm2 geöffnet werden. Wie sage ich macOS, dass es iTerm2 verwenden soll, um ssh://-URLs anstelle von Terminal zu verarbeiten?

iTerm kann dies jetzt standardmäßig tun, aber wenn Sie erweiterte Funktionen unterstützen möchten, zeigen Sie Ihr Interesse auf dem gitlab.com/gnachman/iterm2/issues/5813-Ticket .

Antworten (2)

iTerm2 kann sich selbst als Standard-SSH-Handler festlegen. Gehen Sie in den Einstellungen zu „Profile“. Erstellen Sie ein Profil zur Handhabung von SSH-Sitzungen oder wählen Sie ein vorhandenes aus. Im Abschnitt „Allgemein“ unten rechts können Sie auswählen, welches URL-Schema dieses Profil behandeln soll:

Screenshot der iTerm2-Einstellungen, Abschnitt „Allgemein“ des Bereichs „Profile“.

Wählen Sie SSH aus. iTerm2 fragt, ob es sich selbst als Standard-SSH-Handler einrichten soll:

Screenshot von iTerm2, das um Bestätigung bittet, um sich selbst als Standard-SSH-Handler einzurichten

Bestätigen und fertig. Frohes Remoting.

OK, jetzt muss ich herausfinden, wie ich iTerm dazu bringe, ein neues Fenster anstelle eines neuen Tabs zu öffnen, aber das ist eine andere Frage ...
Die Benutzeroberfläche ist immer noch dieselbe, aber die Änderungen scheinen für mich nie wirksam zu werden. Sollte dies immer noch die richtige Antwort sein oder handelt es sich um einen Fehler in der aktuellen Version (v2.1.4)?
Ähnlich wie bei @Jeff erlebe ich, dass die Änderung nur für sehr kurze Zeit (wenn überhaupt) wirksam wird. Dann übernimmt Terminal wieder.
Sie müssen auch Prefs>Profiles>General>Command auf einstellen $$.
Ich hatte das gleiche Problem von @stefanfoulis; Dieser Fix hat funktioniert, was im Wesentlichen darin besteht, die LaunchServices-Datenbank zurückzusetzen:/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -all local,system,user

Stellen Sie sicher, dass Sie die iTerm2-App in den Anwendungsordner gezogen haben. Wenn Sie iTerm2 als SSH-Terminal-Handler festlegen, wird es weder gespeichert noch verwendet. Es scheint, dass wenn Sie den Handler aufrufen, er nur in Anwendungen sucht. Wenn es dort nicht gefunden wird, wird standardmäßig der Systemhandler verwendet. Ich habe es über Downloads ausgeführt und es würde den SSH-Handler nie speichern. Als ich es in Anwendungen verschoben habe, öffnete es jedes Mal iTerm2 für den SSH-Handler.

Bei El Capitan scheint das nicht zu funktionieren. Ich habe iTerm unter /Applications/, aber ich muss zweimal oder öfter auf das URL-Schema klicken, um überhaupt die Dialogaufforderung zu erhalten, in der Sie aufgefordert werden, iTerm als Standard festzulegen. Dann funktioniert es genau einmal, bevor es stattdessen wieder im Terminal geöffnet wird.
@iandouglas Ich habe das gleiche Problem. Hast du eine Lösung gefunden?
@j-spen Ich hatte es in letzter Zeit nicht ausprobiert, sondern gerade $ open ssh://hostname.comhier bei der Arbeit versucht und es blieb in iTerm2. Vielleicht ist es ein Fehler, den sie behoben haben? Ich bin auf iTerm2 Build 3.0.10 auf El Capitan und es scheint jetzt für mich in Ordnung zu sein. Ich habe sogar einen Href-Link auf einer Seite erstellt, um zu „ssh://username@hostname.com“ zu gehen, und Chrome hat mich aufgefordert, die zugehörige App zu öffnen, und sie ging zu iTerm 2.