So erstellen Sie eine SSH-Verbindung

Und so haben wir SSH-Schlüssel generiert und es ist Zeit, eine Verbindung zum Server herzustellen. Als erstes müssen die öffentlichen Schlüssel an den Server weitergeleitet werden.

 ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
Anstelle von user ersetzen Sie den Login Ihres Benutzers und anstelle von server geben Sie den Host oder die IP-Adresse des Remote-Servers an, zu dem Sie eine Verbindung herstellen möchten. Wenn Ihr ssh auf dem Standardport nicht funktioniert, müssen Sie den Port zusätzlich angeben.
 ssh-copy-id -i ~/.ssh/id_rsa.pub '-p port user@server'
Dabei ist Port der Port, auf dem Ihr SSH-Server lauscht

Das zweite, was Sie tun müssen, bevor Sie eine Verbindung herstellen, besteht darin, zu überprüfen, ob der SSH-Agent Ihre Schlüssel kennt. Dazu können Sie den folgenden Befehl verwenden:

 ssh-add -l
 2048 SHA256:FrcsHSW/ATlQzIhOGdU8oT/CqNJGeWZWgWYY0XA0yag igor-sverdlov@mail.ru (RSA)
Wenn der erforderliche private ssh-Schlüssel nicht verfügbar ist oder Sie die Schlüssel auf einen anderen Server übertragen haben, können Sie den Schlüssel dem Agenten hinzufügen, indem Sie diesen Befehl ausführen:
 ssh-add ~/.ssh/id_rsa
 Identity added: ~/.ssh/id_rsa (~/.ssh/id_rsa)
In diesem Fall werden Sie aufgefordert, das Passwort für den Schlüssel einzugeben. Außerdem müssen Sie beim Debuggen verstehen, welchen Fingerabdruck ein bestimmter SSH-Schlüssel hat. Dazu können Sie den folgenden Befehl verwenden:
 ssh-keygen -lf ~/.ssh/id_rsa.pub
 2048 SHA256:FrcsHSW/ATlQzIhOGdU8oT/CqNJGeWZWgWYY0XA0yag igor-sverdlov@mail.ru (RSA)

In den meisten Fällen ist es praktisch, SSH-Schlüssel automatisch auf den Server hochzuladen. Dazu müssen Sie auf dem Client eine Konfigurationsdatei erstellen.

 touch ~/.ssh/config
 printf "Compression yes\nForwardAgent yes">> ~/.ssh/config
Um alle verfügbaren Konfigurationsoptionen anzuzeigen, können Sie den Befehl ausführen:
 man ssh_config

Schließlich sind wir bereit, den Befehl ssh connect auszuführen. Es sieht aus wie das:

 ssh user@server
Wenn der Port der ssh-Verbindung vom Standard abweicht, kann er mit der Option . eingestellt werden -p.
 ssh -p port user@server
Um die grafische Oberfläche weiterzuleiten, können Sie die Option -X.
 ssh -X user@server
Es ist oft praktisch, Aliase über die config. Der Inhalt der config ~/.ssh/config sieht so aus:
 Host dev
 Hostname server
 User user
 ForwardX11 yes
 Compression yes
 ForwardAgent yes
Jetzt können Sie sich mit dem folgenden Befehl mit dem Serverserver unter dem Benutzerbenutzer verbinden
 ssh dev
Sie können einen Befehl auf einem Remote-Server wie folgt ausführen:
 ssh user@server command
 Thu 06 Jan 2022 03:11:12 PM UTC
In diesem Beispiel wurde der Datumsbefehl verwendet
Um den Tunnel weiterzuleiten, verwenden Sie den folgenden Befehl:
 ssh -f -N -L local_port:endpoint_ip:endpoint_port user@server -p ssh_port
 # example
 ssh -f -N -L 3031:127.0.0.1:8080 217.14.247.114 -p 522
Wo:
– local_port - lokaler Port, an den Anfragen an den Server gehen server
– endpoint_ip - IP-Adresse oder Host des Endzielservers
– endpoint_port - Endpunkt-Port
– user - der Benutzer, unter dem die SSH-Verbindung hergestellt wird
– server - der Server, über den der Tunnel ausgeführt wird
– ssh_port - SSH-Verbindungsport. Wenn der Standardwert 22 verwendet wird, müssen Sie nichts angeben

In unserem Beispiel gehen also alle Anfragen an localhost:3031 an Server 217.14.247.114 auf Port 522 und werden dann auf 127.0.0.1 (also verbleiben auf Server 217.14.247.114) auf Port 8080 umgeleitet. Wenn Sie statt 127.0.0.1 einen anderen Host angeben, geht die Anfrage an den entsprechenden Server.