SSH-Tipps und Tricks

Seitdem ich Charm beigetreten bin, habe ich gearbeitet und mehr über SSH gelernt und dachte, ich würde Ihnen ein paar Tipps und Tricks geben.

Wenn Sie ein Yubikey verwenden (sollten Sie), können Sie es in Ihren Fernbedienungen verwenden, indem Sie den Schlüssel in einem SSH-Agenten haben und ihn weiterleiten.

Um den Agenten zu verwalten, empfehle ich dringend yubikey-agent.

Sie können es dann wie folgt in Ihre ~/.ssh/config übertragen:

Hosten Sie example.org ForwardAgent wahr

Und dann, nach dem SSH, können Sie überprüfen, ob es funktioniert, indem Sie Folgendes ausführen:

ssh-add-L

Das sollte Ihren Schlüssel anzeigen.

Sie können dies auch zu Ihrer ~/.tmux.conf hinzufügen, damit der Agent beim erneuten Verbinden korrekt funktioniert:

set -g update-environment "DISPLAY SSH_ASKPASS SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY" setenv -g SSH_AUTH_SOCK $HOME/.ssh/ssh_auth_sock

Sie müssen außerdem eine ~/.ssh/rc mit folgendem Inhalt auf Ihrem Zielcomputer erstellen:

#!/bin/bash if test "$SSH_AUTH_SOCK"; dann ln -sf $SSH_AUTH_SOCK ~/.ssh/ssh_auth_sock Wenn

SSH führt diese Datei bei der Anmeldung aus und überschreibt einen lokalen Link zum Agenten-Socket, den wir als unseren echten SSH_AUTH_SOCK verwenden (siehe tmux-Konfiguration oben).

Sie können mehr darüber erfahren, indem Sie diesen Blogbeitrag lesen.

Aktivieren Sie es übrigens nicht auf allen Hosts, da es als unsicher angesehen werden könnte, insbesondere wenn Sie einen gemeinsam genutzten Benutzer verwenden. Ich mache das nur auf einem lokalen Server in meinem Heimnetzwerk.

Wenn Sie "häufig" eine Verbindung zu bestimmten Computern herstellen und trennen oder wenn Sie eine Art SSH-Anwendung oder API verwenden, kann es von Vorteil sein, eine Verbindung offen zu halten und sie wiederzuverwenden.

Sie können dies tun, indem Sie Folgendes zu Ihrer ~/.ssh/config hinzufügen:

Hosten Sie example.org Automatischer Steuerungsmeister Kontrollpfad ~/.ssh/%r@%h:%p.sock ControlPersistyes

Dadurch wird ein Unix-Socket unter ~/.ssh/user@host:port.sock erstellt und diese Verbindung verwendet, wenn sie verfügbar ist.

Schließlich schließt der Server die Verbindung (bei Zeitüberschreitung), oder Sie können dies erzwingen, indem Sie Folgendes ausführen:

ssh -O Ausgabe example.org

Sie können auch eine bestimmte maximale Zeit für die Aktivierung eines Sockets erzwingen, indem Sie ControlPersist auf eine Dauer anstelle von Ja setzen, z. ControlPersist 60s, also bleibt es höchstens 1 Minute geöffnet.

Bemerkenswert ist auch, dass es nicht sehr sicher ist, dies auf so ziemlich jedem Server zu tun, auf den Sie Zugriff haben, insbesondere wenn Sie ControlPath beispielsweise auf /tmp setzen.

Wenn Sie wie ich an einem Remote-Rechner arbeiten, verwenden Sie wahrscheinlich auch einen Multiplexer, wie zum Beispiel tmux. Wenn dies der Fall ist, möchten Sie möglicherweise direkt per SSH in eine vordefinierte tmux-Sitzung wechseln, um die Dinge zu beschleunigen.

Sie können dies tun, indem Sie Folgendes zu Ihrer ~/.ssh/config hinzufügen:

Hosten Sie example.org RemoteCommand tmux new -A -s default

Dadurch wird eine Sitzung mit dem Namen default angehängt oder erstellt und angehängt. Das verwende ich regelmäßig und es funktioniert wie ein Zauber.

Wenn Sie sehr oft SSH-Verbindungen zu einem Host herstellen, sollten Sie ihm einen kürzeren Namen geben.

Ein gängiger Weg, dies zu umgehen, ist die Verwendung eines Shell-Alias, aber Sie können dies auch mit einem reinen SSH-Setup tun.

Zum Beispiel:

Ex-Gastgeber Beispiel hostname.org foo-Benutzer Hafen 2223

Erlaubt Ihnen, anstatt Folgendes einzugeben:

ssh foo@beispiel.org -p 2223

Typ:

Pssst Bsp

Stattdessen.

Ich verwende dies besonders in Verbindung mit einigen vorherigen Tipps in meinem Dev-Server, sodass ich mit meinem weitergeleiteten Yubikey-SSH-Agenten mit einem einfachen Befehl einfach ssh dev und eine tmux-Sitzung eingeben kann.

Ich entwickle SSH-Anwendungen mit Wish und teste sie normalerweise ein wenig lokal. Dies könnte dazu führen, dass meine Datei ~/.ssh/known_hosts unübersichtlich wird, was auch zu Fehlern bei der Schlüsselüberprüfung führt.

Ich verhindere dies, indem ich die strikte Schlüsselüberprüfung deaktiviere und...

SSH-Tipps und Tricks

Seitdem ich Charm beigetreten bin, habe ich gearbeitet und mehr über SSH gelernt und dachte, ich würde Ihnen ein paar Tipps und Tricks geben.

Wenn Sie ein Yubikey verwenden (sollten Sie), können Sie es in Ihren Fernbedienungen verwenden, indem Sie den Schlüssel in einem SSH-Agenten haben und ihn weiterleiten.

Um den Agenten zu verwalten, empfehle ich dringend yubikey-agent.

Sie können es dann wie folgt in Ihre ~/.ssh/config übertragen:

Hosten Sie example.org ForwardAgent wahr

Und dann, nach dem SSH, können Sie überprüfen, ob es funktioniert, indem Sie Folgendes ausführen:

ssh-add-L

Das sollte Ihren Schlüssel anzeigen.

Sie können dies auch zu Ihrer ~/.tmux.conf hinzufügen, damit der Agent beim erneuten Verbinden korrekt funktioniert:

set -g update-environment "DISPLAY SSH_ASKPASS SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY" setenv -g SSH_AUTH_SOCK $HOME/.ssh/ssh_auth_sock

Sie müssen außerdem eine ~/.ssh/rc mit folgendem Inhalt auf Ihrem Zielcomputer erstellen:

#!/bin/bash if test "$SSH_AUTH_SOCK"; dann ln -sf $SSH_AUTH_SOCK ~/.ssh/ssh_auth_sock Wenn

SSH führt diese Datei bei der Anmeldung aus und überschreibt einen lokalen Link zum Agenten-Socket, den wir als unseren echten SSH_AUTH_SOCK verwenden (siehe tmux-Konfiguration oben).

Sie können mehr darüber erfahren, indem Sie diesen Blogbeitrag lesen.

Aktivieren Sie es übrigens nicht auf allen Hosts, da es als unsicher angesehen werden könnte, insbesondere wenn Sie einen gemeinsam genutzten Benutzer verwenden. Ich mache das nur auf einem lokalen Server in meinem Heimnetzwerk.

Wenn Sie "häufig" eine Verbindung zu bestimmten Computern herstellen und trennen oder wenn Sie eine Art SSH-Anwendung oder API verwenden, kann es von Vorteil sein, eine Verbindung offen zu halten und sie wiederzuverwenden.

Sie können dies tun, indem Sie Folgendes zu Ihrer ~/.ssh/config hinzufügen:

Hosten Sie example.org Automatischer Steuerungsmeister Kontrollpfad ~/.ssh/%r@%h:%p.sock ControlPersistyes

Dadurch wird ein Unix-Socket unter ~/.ssh/user@host:port.sock erstellt und diese Verbindung verwendet, wenn sie verfügbar ist.

Schließlich schließt der Server die Verbindung (bei Zeitüberschreitung), oder Sie können dies erzwingen, indem Sie Folgendes ausführen:

ssh -O Ausgabe example.org

Sie können auch eine bestimmte maximale Zeit für die Aktivierung eines Sockets erzwingen, indem Sie ControlPersist auf eine Dauer anstelle von Ja setzen, z. ControlPersist 60s, also bleibt es höchstens 1 Minute geöffnet.

Bemerkenswert ist auch, dass es nicht sehr sicher ist, dies auf so ziemlich jedem Server zu tun, auf den Sie Zugriff haben, insbesondere wenn Sie ControlPath beispielsweise auf /tmp setzen.

Wenn Sie wie ich an einem Remote-Rechner arbeiten, verwenden Sie wahrscheinlich auch einen Multiplexer, wie zum Beispiel tmux. Wenn dies der Fall ist, möchten Sie möglicherweise direkt per SSH in eine vordefinierte tmux-Sitzung wechseln, um die Dinge zu beschleunigen.

Sie können dies tun, indem Sie Folgendes zu Ihrer ~/.ssh/config hinzufügen:

Hosten Sie example.org RemoteCommand tmux new -A -s default

Dadurch wird eine Sitzung mit dem Namen default angehängt oder erstellt und angehängt. Das verwende ich regelmäßig und es funktioniert wie ein Zauber.

Wenn Sie sehr oft SSH-Verbindungen zu einem Host herstellen, sollten Sie ihm einen kürzeren Namen geben.

Ein gängiger Weg, dies zu umgehen, ist die Verwendung eines Shell-Alias, aber Sie können dies auch mit einem reinen SSH-Setup tun.

Zum Beispiel:

Ex-Gastgeber Beispiel hostname.org foo-Benutzer Hafen 2223

Erlaubt Ihnen, anstatt Folgendes einzugeben:

ssh foo@beispiel.org -p 2223

Typ:

Pssst Bsp

Stattdessen.

Ich verwende dies besonders in Verbindung mit einigen vorherigen Tipps in meinem Dev-Server, sodass ich mit meinem weitergeleiteten Yubikey-SSH-Agenten mit einem einfachen Befehl einfach ssh dev und eine tmux-Sitzung eingeben kann.

Ich entwickle SSH-Anwendungen mit Wish und teste sie normalerweise ein wenig lokal. Dies könnte dazu führen, dass meine Datei ~/.ssh/known_hosts unübersichtlich wird, was auch zu Fehlern bei der Schlüsselüberprüfung führt.

Ich verhindere dies, indem ich die strikte Schlüsselüberprüfung deaktiviere und...

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow