GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was ist ein SSH-Befehl und wie wird SSH verwendet, um eine Verbindung zum Remote-Server herzustellen?

Es kann vorkommen, dass eine Remote-Anmeldung bei einem Computer erforderlich ist. Möglicherweise benötigen Sie Zugriff auf eine Datei, müssen einem Freund bei einem Problem helfen oder sogar Dateien zwischen Computern übertragen. Was auch immer es ist Secure Shell (SSH) ermöglicht es Ihnen, sich über eine verschlüsselte Verbindung mit einem anderen Computer zu verbinden, auf dem Linux (oder tatsächlich ein anderes Unix-System wie BSD oder Solaris) läuft. Damit ein Remote-Host SSH-Verbindungen empfangen kann, muss der Daemon ausgeführt werden (sshd) und eingehende Pakete an Port 22 akzeptiert werden wenn eine Firewall verwendet wird.

So funktioniert SSH

Die Idee hinter SSH ist es, einem Benutzer die Ferninteraktion mit einem Computer über das Terminal über eine verschlüsselte Verbindung zu ermöglichen. Dies bedeutet, dass die übertragenen Daten (wie der Benutzername und das Passwort, die zum Anmelden verwendet werden) sicher sind, wodurch ein Angreifer daran gehindert wird, sensible Daten mit einem Paketschnüffler zu sammeln, was der Fall wäre, wenn Sie Remote Shell (RSH) über das Internet verwenden, weil Ihre Anmeldedaten würden als Klartext (keine Verschlüsselung) an den Server gesendet.

SSH einrichten

Wenn Ihr Computer keine SSH-Verbindungen empfangen kann, müssen Sie das SSH-Protokoll installieren, falls es noch nicht installiert ist. Systeme wie Ubuntu sollten den SSH-Daemon (sshd) so konfigurieren, dass er beim Start ausgeführt wird. Wenn eine Firewall vorhanden ist, müssen Sie möglicherweise auch die Einstellungen konfigurieren, um eingehende Verbindungen zu Port 22 oder dem Port zuzulassen, den Sie für SSH ausgewählt haben, um eingehende Verbindungen zu akzeptieren.

$ sudo apt install ssh   

Eine einfache Demonstration

Wie bei vielen Dingen bei Linux ist der Prozess der Anmeldung bei einer Remote-Shell einfach. Lassen Sie uns ein Terminal öffnen und uns unter dem Benutzernamen „unix_allsort“ bei einem Computer anmelden:

$ ssh [email protected] 

Wenn Sie sich zum ersten Mal mit Ihrem Computer unter dem aktuellen Benutzer bei einem bestimmten Host anmelden, werden Sie gefragt, ob Sie diesen Host in die Liste der bekannten Verbindungen aufnehmen möchten. Wenn dies nicht der Fall ist und Sie diese Meldung erhalten, könnte es sich um einen ganz anderen Host handeln, was möglicherweise darauf hindeuten könnte, dass sich jemand als dieser Computer ausgibt!

Sobald Sie sich authentifiziert haben, sollten Sie in der Lage sein, sich im System zurechtzufinden, als ob Sie persönlich am Computer wären.

Sie könnten sogar SSH auf diesem Computer verwenden, um auf einen anderen Remote-Computer zuzugreifen:

[email protected]:~$ ssh [email protected]   

Programme auf Remote-Hosts ausführen ODER SSH-Remote-Befehl ausführen

Es besteht die Möglichkeit, eine Anwendung auf einem Remote-Host auszuführen, sobald Sie sich mit SSH angemeldet haben. Ein Beispiel wäre, einen Editor zu starten, um eine bestimmte Datei auf dem besagten Host zu bearbeiten.

$ ssh -t [email protected] vim ~/Documents/list.txt

Sie könnten vim so verwenden, als würden Sie diesen Computer persönlich verwenden. Die Option „-t“ ist immer dann erforderlich, wenn Sie Programme wie vim von einem entfernten Host starten möchten. Dieser Parameter wird verwendet, um eine pseudoterminale Zuordnung zu erzwingen. Die Manpage besagt, dass bildschirmbasierte Programme wie vim aus diesem Grund mit dieser Option gestartet werden sollten. Wenn diese fehlt, funktionieren einige Terminal-Apps möglicherweise nicht richtig.

GUI-Anwendungen

SSH bietet auch eine Möglichkeit, ein X11-GUI-Programm wie Firefox im Gegensatz zu einem Nur-Text-Programm zu starten.

$ ssh -X [email protected] 

Firefox Der Parameter „-X“ weist den Remote-Host einfach an, dem verbundenen Computer zu erlauben, viele X-Anwendungen zu starten, wenn er dazu aufgefordert wird, entweder über die Shell oder auf andere Weise. Viele Programme können auf diese Weise ausgeführt werden, Webbrowser, Editoren, sogar einige Windows-Programme über Wine. Ich habe festgestellt, dass Terminalemulatoren unter X nicht ausgeführt werden können. Weitere Informationen zur X11-Weiterleitung finden Sie auch auf der Manpage.

Hinweis: Sie können auf diesen Fehler stoßen, wenn Sie sich mit SSH mit aktivierter X11-Weiterleitung anmelden:/usr/bin/xauth:Zeitüberschreitung in Sperrautoritätsdatei /home/your_home/.Xauthority Wenn dies jemals auftritt, besteht das Problem darin, dass bereits eine Sperrdatei für „xauth“ vorhanden ist existiert. Die Lösung besteht darin, die Sperrdatei zu entfernen. Es kann mehr als einen geben, also führen Sie diesen Befehl aus, um sie zu entfernen (zwingend, falls nötig):

$ rm -rf ~/.Xauthority-* 

Melden Sie sich von der SSH-Sitzung ab und wieder an. Sie sollten dann X-Apps wieder ausführen können.

SSH ohne Passwort konfigurieren

Es ist möglich, sich remote bei einem Computer anzumelden, ohne Ihre Anmeldeinformationen eingeben zu müssen. Dies erfordert, dass Computer so eingerichtet sind, dass sich Ihr Computer auf diese Weise anmelden kann, was durch die Verwendung von Schlüsselpaaren erreicht werden kann, die mit "ssh-keygen" generiert werden ’.

Zuerst muss der Schlüssel generiert werden. Hier ist es akzeptabel, bei den Standardeinstellungen zu bleiben. Da der Zweck dieser Übung darin besteht, jedes Mal, wenn eine Sitzung initiiert wird, die Eingabe eines Passworts oder einer Passphrase im Terminal zu überspringen, möchten wir keine Passphrase für diesen Schlüssel haben.

Nachdem alles erstellt wurde, muss das in der Identitätsdatei gefundene ky auf dem entfernten Computer installiert werden:

$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

Wenn diese Schritte korrekt durchgeführt wurden, sollten Sie sich per SSH am PC anmelden können, ohne nach einem Passwort gefragt zu werden.

Tools, die auf SSH angewiesen sind

Sichere Kopie

SCP (Secure Copy) ermöglicht es Benutzern, Dateien über eine sichere Verbindung zu oder von einem Remote-Host zu kopieren. Die Syntax ist dem Befehl „cp“ sehr ähnlich, bei dem Sie die Dateien oder Ordner und ihr Ziel angeben. Hier ist ein Beispiel:

$ scp ~/Documents/shopping.odt [email protected]:~/Documents 

Wir haben gerade eine Datei über das Internet über eine sichere Verbindung auf einen entfernten Computer kopiert. Das gleiche kann auch für Ordner gemacht werden:

$ scp -r [email protected]:~/Documents/Reports ~/Documents 

Dies kopiert einen Ordner (daher das „-r“ für rekursiv) und seinen Inhalt von einem Remote-PC auf Ihren Computer.

SSH-Dateiübertragungsprotokoll (SFTP)

SFTP ermöglicht den sicheren Zugriff und die Übertragung von Dateien mit dem File Transfer Protocol über SSH.

Schlussfolgerung

Mit SSH können Sie sich unter normalen Umständen von fast überall auf einem anderen Computer anmelden. Die X11-Weiterleitung kann aktiviert werden, um GUI-Apps vom Remote-Computer auszuführen, und Programme können gestartet werden, anstatt eine Shell zu starten. Die Manpage für SSH bietet viele nützliche Informationen, also werfen Sie einen Blick darauf.


Linux
  1. Was ist ein Chown-Befehl unter Linux und wie wird er verwendet?

  2. Was ist ein cURL-Befehl und wie wird er verwendet?

  3. So verwenden Sie den Linux-Rsync-Befehl (Remote-Synchronisierung).

  4. So verbinden Sie sich mit plink und cmd und öffentlichem Schlüssel mit dem SSH-Server

  5. So installieren und verwenden Sie das Mosh Command Line Tool Linux

So verwenden Sie SSH, um eine Verbindung zu einem Remote-Server herzustellen

So installieren und verwenden Sie den fd-Befehl unter Linux

Was ist EasyApache und wie verwende ich es?

So installieren und verwenden Sie den Xrdp-Server (Remote Desktop) auf einem Linux-System

Generieren und Verwenden eines SSH-Schlüssels mit PuTTY

So verwenden Sie SSH, um eine Verbindung zu einem Remote-Server unter Linux oder Windows herzustellen