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

Erste Schritte mit SSH unter Linux

Dank der vernetzten Welt, in der wir leben, brauchen Sie keinen physischen Zugriff mehr auf Ihren Server. Ihr Server kann sich überall auf der Welt befinden und Sie können sich von Ihrem lokalen Computer aus mit ihm verbinden.

Es gibt viele Protokolle und Werkzeuge, die für diesen Zweck entwickelt wurden. Dazu gehören Telnet und ssh . Telnet wird aus Sicherheitsgründen nicht bevorzugt. Auf der anderen Seite ist ssh das beliebte Mittel, um eine sichere Verbindung zu entfernten Systemen herzustellen.

In diesem Artikel werde ich einige nützliche Befehle und Tools behandeln, die ein Linux-Benutzer kennen muss, um ein entferntes System und seine Ressourcen über ssh zu verwenden.

Beachten Sie, dass die meisten Befehle, die Sie auf Ihrem persönlichen lokalen Linux-System ausführen, auch auf dem Remote-System verfügbar sein sollten (z. B. ls, cat, cd-Befehl usw.). Ihre Ausführung hängt jedoch wie bei jedem Linux/UNIX-System von den Berechtigungen ab, die einem entfernten Benutzer zugeteilt wurden.

Was ist SSH?

Die ssh oder Secure Shell ist ein Netzwerkprotokoll zum sicheren Betrieb von Netzwerkdiensten über ein Netzwerk. Es verwendet Verschlüsselungsstandards, um sich sicher mit dem Remote-System zu verbinden und sich anzumelden.

Es speichert einen öffentlichen Schlüssel im Remote-System und einen privaten Schlüssel im Client-System. Diese Schlüssel werden mathematisch als Paar erzeugt. Wenn beide auf eine Funktion mit zwei Variablen angewendet werden, führt dies zu einem Wert, der verwendet wird, um zu prüfen, ob das Paar gültig oder ungültig ist. Dies ist die einfachste mögliche Erklärung. Weitere Informationen finden Sie auf dieser Seite.

Beispiele für die Verwendung von SSH

Beginnen wir mit der Einrichtung von ssh und wirklich coole Anwendungsfälle.

SSH-Schlüssel generieren

Websites wie GitHub und Heroku fragen nach Ihrem ssh öffentlicher Schlüssel, damit Sie Code ohne Eingabe eines Passworts pushen/bereitstellen können, und Sie haben kein solches Schlüsselpaar? Mach dir keine Sorgen. Sie können ein solches SSH-Schlüsselpaar mit diesem  Befehl generieren:

ssh-keygen

Es wird nach einem Schlüsselort (wo der Schlüssel gespeichert wird) und einer Passphrase (d. H. Passwort) gefragt. Die Passphrase ist optional.

Standardmäßig werden die ssh-Schlüssel im .ssh-Verzeichnis unter Ihrem Home-Verzeichnis gespeichert.

Wenn der Schlüsselort DIR_PATH/keypairforssh ist , gibt es zwei Dateien

  1. DIR_PATH/keypairforssh
  2. DIR_PATH/keypairforssh.pub

1 ist die private Schlüsseldatei, die Sie mit niemandem teilen dürfen
2 ist die öffentliche Schlüsseldatei, die mit entfernten Systemen (mittels anderer vertrauenswürdiger Kommunikation wie E-Mail, physischer Übertragung und anderer sicherer Kommunikationstools) und Diensten wie Github, Heroku für die jeweiligen Anwendungsfälle geteilt werden kann. Informieren Sie sich gründlich über den Dienst, für den Sie eine Verbindung herstellen.

Privaten Schlüssel zum Key-Agent hinzufügen

Wenn das Schlüsselpaar erstellt wird, besteht es lediglich aus zwei Dateien. Um sich mit dem entfernten System zu verbinden, muss es den privaten Schlüssel verwenden. Man sollte also mitteilen, dass dieser DIR_PATH/keypairforssh ist der private Schlüssel.

Dies geschieht durch

ssh-add keylocation

In unserem Fall ist es

ssh-add DIR_PATH/keypairforssh

Über SSH mit Remote-Host verbinden

Wenn sich der private Schlüssel und der öffentliche Schlüssel an den richtigen Stellen befinden, können Sie sich auf diese Weise mit dem System verbinden.

ssh [username]@hostname

Wobei der Benutzername ein gültiger Benutzer auf dem entfernten System und der Hostname DNS-erkennbar oder eine IP-Adresse sein sollte, damit ssh das entfernte System kontaktieren und eine Verbindung anfordern kann.

Um beispielsweise eine Verbindung zu dem System mit dem Namen „linuxhandbook “ mit dem Benutzernamen „seeni ” , verwenden Sie:

ssh [email protected] 

Wie zuvor erläutert, verwendet der obige Befehl den privaten Schlüssel auf dem lokalen System und den öffentlichen Schlüssel auf dem Remote-System und überprüft, ob es sich um gültige Paare handelt. Es erlaubt die Anmeldung nur dann, wenn das Schlüsselpaar gültig ist, und erstellt eine Shell (der Typ hängt von der Konfiguration für den Benutzer auf dem Remote-System ab) für Ihre Verwendung. Sie können das entfernte System genauso verwenden wie das lokale System.

Angenommen, der private Schlüssel wird nicht zum Schlüsselagenten hinzugefügt, dann können Sie sich wie folgt per SSH anmelden.

ssh -i /path/to/private/key/file [email protected]

Diese Überprüfung von Schlüsselpaaren wird normalerweise einmal durchgeführt. Ssh fügt den entfernten Host der Liste der autorisierten Hosts für die zukünftige Verwendung hinzu.

Kopieren von Dateien zwischen Client- und Remote-Systemen

Der Befehl scp ist ein Tool, das auf ssh aufbaut. Es ermöglicht Benutzern, Dateien und Verzeichnisse vom Remote- zum Client und umgekehrt zu kopieren.

Da der Befehl scp ssh verwendet, benötigt er dieselben Anforderungen wie ssh. Das bedeutet, dass sich der öffentliche Schlüssel auf dem entfernten System und der private Schlüssel auf dem lokalen System befinden sollte.

scp DIR_PATH_1 DIR_PATH_2

Wobei DIR_PATH_1/DIR_PATH_2 sind beide Pfade, die entweder entfernte oder lokale Dateisystempfade sind. Beispiel:Um ~/Documents/documentForLinux.txt zu übertragen zu ‘linuxHandbook ‘s /home/seeni/Documents Verzeichnis

scp ~/Documents/documentForLinux.txt [email protected]:~/Documents

Um dieselbe Datei in umgekehrter Richtung zu kopieren,

scp  [email protected]:~/Documents/documentForLinux.txt ~/Documents

Einhängen eines entfernten Dateisystems oder Verzeichnisses

Um entfernte Systemverzeichnisse auf dem Client zu mounten, ist sshfs das Werkzeug
speziell für diesen Zweck entwickelt.

sshfs [email protected]:/path/to/remote/folder /path/to/local/mount/point

Der obige Befehl ist völlig intuitiv. Hier ist „Name“ der Benutzername, der auf dem Remote-System akzeptiert wird, und Server ist der Remote-„Hostname“.

In manchen Systemen sshfs möglicherweise nicht verfügbar, installieren Sie es bei Bedarf.

Tipp:Mit dem nohup-Befehl können Sie weiterhin Befehle ausführen, auch nachdem Sie Ihre SSH-Verbindung getrennt haben.

Fazit

Herzlichen Glückwunsch, Sie haben es bis zum Ende geschafft. Ich hoffe, dass dieser Artikel alle grundlegenden Befehle und Tools im Zusammenhang mit ssh behandelt hat. Diese Tools reichen gerade aus, um mit dem Remote-Computing mit ssh zu beginnen.

In einem verwandten Artikel können Sie mehr über tmate erfahren. Es ist ein Tool, mit dem Sie Ihre Terminalsitzung über SSH teilen können.

Ich hoffe, Sie finden diesen Artikel nützlich. Wenn Sie Vorschläge haben, können Sie diese gerne im Kommentarbereich unten hinterlassen.


Linux
  1. Erste Schritte mit Linux-Firewalls

  2. Erste Schritte mit dem Linux-tac-Befehl

  3. Erste Schritte mit PiFlash:Starten Sie Ihren Raspberry Pi unter Linux

  4. Erste Schritte mit dem Linux-cat-Befehl

  5. Gewusst wie:Erste Schritte mit Ansible

Erste Schritte mit GIT unter Linux

Erste Schritte mit dem Linux-Betriebssystem

Vagrant-Tutorial – Erste Schritte mit Vagrant unter Linux

Erste Schritte mit Docker Compose unter Linux

Erste Schritte mit VirtualBox unter Linux – Teil 1

Erste Schritte mit Flutter auf dem Linux-Desktop