Wie man OpenSSH optimal nutzt

Wie man OpenSSH optimal nutzt

OpenSSH ist ein Netzwerkkonnektivitäts- und Remote -Login -Tool, das den gesamten Datenverkehr sicher verschlüsselt, das ursprünglich von OpenBSD -Entwicklern für die Verwendung in ihrem Betriebssystem entwickelt wurde. In Anbetracht des primären Fokus der OpenBSD -Entwickler auf Sicherheit ist es nicht verwunderlich, dass OpenSSH schnell zur Standard -Remote -Anmeldungsimplementierung für alle Linux- und Unix -Betriebssysteme wurde. OpenSSH verwendet ein Client -Server -Modell mit dem ssh Befehl bereitzustellen Client -Funktionalität und sshd Bereitstellung von Serverfunktionen.

In diesem Tutorial lernen Sie:

  • So installieren Sie OpenSsh
  • Wie man sich bei einer Fernschale anmeldet
  • So kopieren Sie Dateien zwischen Maschinen mit SCP
  • So aktivieren Sie die wichtige Authentifizierung der Schlüsselbasis und deaktivieren Sie das kennwortbasierte Anmeldung
  • So speichern Sie Konfigurationen von häufig zugänglichen Maschinen, um einfachere Verbindungen zu erhalten
  • So montieren Sie ein Remote-Dateisystem über SSH-Protokal
  • So verwenden Sie die Portweiterleitung/Tunneling
  • Zugang zu einer Maschine hinter NAT/Firewall
  • So erstellen Sie einen Web -Proxy
Wie man openSSH - Tipps und Tricks openSSH macht -

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Debian-basierte, rothutbasierte und arch-basierte Systeme werden explizit abgedeckt, aber die OpenSSH-Suite ist verteilungsunabhängig und alle Anweisungen sollten für jede Verteilung funktionieren, die systemd wie IT INit-System verwendet.
Software OpenSsh
Andere Root -Berechtigungen zum Ändern von Konfigurationsdateien
Konventionen # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl
$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

Installieren von OpenSSH

Die meisten Verteilungen bieten die Möglichkeit, OpenSSH während der ersten Installation zu installieren, kann jedoch weiterhin manuell installiert werden, wenn diese Option nicht ausgewählt wurde. Auf Debian und Red Hat -basierten Systemen müssen Sie den Server und den Client separat installieren, während der Client und der Server auf archbasierten Systemen als ein einzelnes Paket installiert sind (siehe Beispiel unten). Beachten Sie, dass, wenn Sie eine Firewall verwenden.

Auf Debian -basierten Systemen

$ sudo apt-get install OpenSSH-Server $ sudo Apt-Get Install OpenSSH-Client 


Auf Red Hat -basierten Systemen (Hinweis: Auf Fedora Version 22 oder höher ersetzen Sie YUM durch DNF)

$ sudo yum install OpenSSH-Server $ sudo yum install OpenSSH-Client 

Auf einem archbasierten System

$ sudo pacman -S OpenSsh 

Nach der Installation des SSH -Servers ermöglichen einige Verteilungen den SSHD -Dienst standardmäßig und andere nicht. In den letzten Versionen der oben genannten Verteilungen geben Sie Folgendes ein, um sicherzustellen.

$ sudo systemctl starten sshd $ sudo systemctl aktivieren sshd 

Dies startet den Dienst jetzt und auf jedem nachfolgenden Start.

Melden Sie sich bei einer Fernschale an

Anmeldung in eine Fernschale ist die grundlegendste und häufigste Verwendung von OpenSSH. Mit dem folgenden Befehl können Sie sich von einem vernetzten Computer zu einem anderen anmelden, vorausgesetzt, beide haben die offene SSH installiert. Hinweis: Ersetzen Sie "Benutzername" durch den Benutzernamen des Benutzer. Wenn Sie eine Verbindung zu einem anderen Computer im selben Netzwerk wie Sie herstellen, ersetzen Sie "Host" durch die IP -Adresse oder den Hostnamen dieses Computers. Wenn Sie sich in einem Computer über dem Internet anmelden, ersetzen Sie "Host" durch die IP -Adresse oder den Domänennamen dieses Computers.

$ ssh userername@host 

Standardmäßig benötigt SSHD das Kennwort des Benutzer. Wenn der Benutzer der Root -Benutzer ist oder Sudo -Berechtigungen verfügt. Beachten Sie, dass Sie die Portnummer angeben müssen, indem Sie die Portnummer angeben, indem Sie die Portnummer angeben, indem Sie „-P 10001“ angeben (die “(die“ (die-P”Muss ein Kleinbuchstaben sein, mehr dazu später) zwischen SSH und dem Rest des Befehls.

Kopieren von Dateien zwischen Maschinen

Der SCP -Befehl kann verwendet werden, um Dateien auf oder von einem Computer und einem anderen zu kopieren. Dazu müssen Sie zuerst den Pfad der Datei bereitstellen, die Sie kopieren möchten, und dann den Pfad, an dem die Datei kopiert werden soll.

Zum Beispiel, um die Datei zu kopieren Aufgabenliste.txt vom Kunden ~/Dokumente Ordner zum Remoteautomat ~/Downloads Ordner geben Sie Folgendes ein.

$ scp ~/documents/todolist.txt userername@host: ~/downloads/ 

In ähnlicher Weise können Sie eine Datei vom Server zum Client kopieren. Geben Sie einfach den Pfad der Datei auf dem Server an, gefolgt von dem gewünschten Pfad auf dem Client -Computer. Zum Beispiel können wir dasselbe kopieren Aufgabenliste.txt dass wir gerade hochgeladen haben, in die /tmp Verzeichnis der lokalen Maschine durch Ausgabe des folgenden Befehls.

$ scp username@host: ~/downloads/todolist.txt /tmp / 

Beachten Sie, dass Sie die Portnummer angeben müssen, indem Sie die Portnummer angeben, indem Sie die Portnummer angeben, indem Sie die Portnummer angeben, indem Sie die Portnummer angeben, indem Sie die Portnummer angeben, wenn Sie zu/von einem Server kopieren -P 10001 “zwischen SCP und dem Rest des Befehls. Beachten Sie auch, dass dies ein Kapital ist P im Gegensatz zum Kleinbuchstaben P Wird vom SSH -Befehl verwendet. Der Prozess zum Kopieren von Verzeichnissen ist derselbe, außer dass Sie die “angeben müssen“-R”Flag, um ein Verzeichnis rekursiv zusammen mit all seinen Unterverzeichnissen und Dateien darin zu kopieren. Der folgende Befehl kopiert das gesamte Dokumenteverzeichnis vom lokalen Benutzer in den Download -Ordner des Remote -Benutzers.

$ scp -r ~/dokument userername@host: ~/downloads/ 

Als Alternative zum SCP -Befehl können Sie den Befehl SFTP verwenden, um Dateien zwischen Maschinen zu übertragen. Es verhält sich wie der klassische FTP -Befehl, aber im Gegensatz zu FTP ist es vollständig verschlüsselt.

Konfigurieren der wichtigsten Authentifizierung

Wenn Sie OpenSSH in Ihrem sicheren Heimnetzwerk verwenden, können Sie mit der Passwortauthentifizierung in Ordnung sein. Wenn Sie es jedoch über das Internet verwenden, wird für zusätzliche Sicherheit eine wichtige Authentifizierung und Deaktivierung der Authentifizierung der Kennwortauthentifizierung auf Ihrem Internet -Server empfohlen. Dies kann auch nützlich sein, wenn Sie einfach nicht vermeiden möchten, dass das Passwort zum Anmeldung eingeben oder die Servermaschine auf dem öffentlichen WLAN verwenden.

Die wichtigste Authentifizierung verwendet eine kryptografische Schlüsselpaarkonstante eines privaten Schlüssels, der nur auf dem lokalen Client-Computer gespeichert ist, und einen öffentlichen Schlüssel, der auf dem Remote-Server gespeichert ist.

Generieren Sie zunächst das private/öffentliche Schlüsselpair auf dem lokalen Kundenautomaten.

$ ssh -keygen -t RSA 

Laden Sie dann nur den öffentlichen Schlüssel in die Remote -Maschine hoch

$ ssh-copy-id -i ~/.ssh/id_rsa.Pub Benutzername@Host 

Melden Sie sich nun beim Remote-Server an und wenn Sie nicht für das Benutzerkennwort aufgefordert werden, funktioniert die Schlüsselanmeldung mit der Schlüsselanmeldung und Sie können eine kennwortbasierte Anmeldung deaktivieren.
Verwenden Sie Ihren bevorzugten Texteditor offen /etc/ssh/sshd_config als Wurzel oder mit sudo

$ sudo vim/etc/ssh/sshd_config 


und machen Sie die folgenden Änderungen, indem Sie sich ändern Ja Zu NEIN Für diese Felder und die Überzeugung nach Bedarf (löschen Sie #, wenn die Linie damit beginnt).

ChallengerePonseAuthentication Keine PasswordAuthentication No Usepam Nr 

Laden Sie den SSHD -Dienst als nächstes neu auf.

$ sudo systemctl Reload SSH 

Speichern Sie Konfigurationen von häufig zugegriffenen Maschinen für einfachere Verbindungen

Es kann nützlich sein, die Konfigurationen häufig zugänglicher Maschinen zu speichern, damit Sie einfacher eine Verbindung zu ihnen herstellen können. Vor allem, wenn SSHD auf einem nicht Standard -Port zuhört (nicht 22). Um dies zu tun, fügen Sie Ihrem Einträge hinzu ~/.ssh/config Datei.
Ein Eintrag für eine Maschine, die Sie mit dem folgenden Befehl eine Verbindung herstellen würden

$ ssh -p 1666 bob@remotemachine 

sieht aus wie das.

Host Remotemachine -Benutzer Bob Hostname Remotemachine Port 1666 

Dann können Sie auf diesen Computer zugreifen, indem Sie den folgenden Befehl für die Zukunft.

$ ssh remotemachine 

Montage eines Netzwerkdateisystems mit SSHFs

Obwohl es nicht Teil der OpenSSH -Suite ist, sshfs kann mit dem Paketmanager installiert und anschließend verwendet werden, um Remote-Dateisysteme über das Netzwerk zu montieren. Nehmen wir an, Sie möchten auf das Home-Verzeichnis von user1@machine1 in Ihrem lokalen Dateisystem zugreifen.

Erstellen Sie das Verzeichnis, in dem Sie das Remote-Dateisystem montieren möchten.

$ mkdir sshmount 

Montieren Sie das Dateisystem, das den Remote-Pfad und den lokalen Pfad angibt, auf dem Sie ihn montieren möchten.

$ sshfs user1@machine1:/home/user1 ssHmount 

Um das Dateisystem zu entlarven, geben Sie einen der folgenden Befehle aus

$ fUstermount -U SSHHOUNT 

oder

$ sudo Umo. SSHHOUNT 


Hafenweiterleitung/Tunneling

Die Portweiterleitung, auch als Tunneling bezeichnet, kann verwendet werden, um Verschlüsselung für Anwendungen und Protokolle bereitzustellen, deren Netzwerkverkehr sonst im Clear gesendet werden würde. Die nächsten beiden Beispiele zeigen zwei weitere Verwendungen der Portweiterleitung.

Zugriff auf eine Remote -Shell auf einer Maschine, die sich hinter NAT oder Firewall befindet

Was ist, wenn Sie SSH über das Internet in eine Maschine hinter NAT oder einer Firewall befinden möchten? In diesem Szenario gibt es 3 Maschinen.

  1. Die Maschine hinter Nat, die Sie sich bei der Ausstattung anmelden möchten
  2. Ein im Internet ausgerichteter Server, auf den Sie SSH -Zugriff haben
  3. Ein Computer in einem anderen Netzwerk, mit dem Sie sich über das Internet bei Maschine 1 anmelden möchten

Für den SSH -Befehl der -L Schalten Sie die Verbindungen von Vorwärtsverbindungen zum angegebenen lokalen Port zum angegebenen Host -Port ab. Ebenso die -R Schalten Sie die Verbindungen an den angegebenen Remote -Port zum lokalen angegebenen Port vor.

Geben Sie auf Maschine 1 den folgenden Befehl ein.

user1@1 $ ssh -r 10125: localhost: 22 user2@2 

Auf Maschine 3 Geben Sie die folgenden Befehle ein. Hinweis: Der zweite Befehl sollte in einem neuen Terminalfenster oder TTY geöffnet werden.

user3@3 $ ssh -l 10001: localhost: 10125 user2@2 user3@3 $ ssh user1@localhost -p 10001 

Der erste Befehl scheint normalerweise in Maschine 2 angemeldet zu sein, bindet jedoch auch Port 22 (SSHD -Service) von Maschine 1 bis Port 10125 auf Maschine 2, sodass Verbindungen zu Port 10125 auf Maschine 2 an Port 22 auf Maschine 1 weitergeleitet werden. Der zweite Befehl scheint auch normal in Maschine 2 angemeldet zu sein, bindet jedoch Port 10001 von Maschine 3 nach Port 10125 auf Maschine 2, so dass Verbindungen zu Port 10001 auf Maschine 3 an Port 10125 auf Maschine 2 weitergeleitet werden, die dann weitergeleitet werden zu Port 22 auf Maschine 1. Dann konnte sich Machine 3 schließlich in Maschine 1 anmelden, indem er sich an Port 10001 an sich selbst anschließt, die es über den von uns erstellten Tunnel weitergeleitet hat.

Verwenden von OpenSSH als Web -Proxy

Verwendung der -D FALT. Dies kann besonders für das Webbrowsingen nützlich sein, beispielsweise wenn Sie auf öffentlichem WLAN sind und zusätzliche Privatsphäre wünschen oder wenn Sie sich in einem Arbeits-/Schule/anderen Netzwerk befinden, das den Datenverkehr oder Zensur inhaltlich schnüffeln kann.

Geben Sie einfach den folgenden Befehl aus und Sie können Port verwenden 8888 Ihre lokale Maschine als Sockenproxy, so dass Verbindungen zu Port 8888 sicher an den Remote -Server weitergeleitet und vollständig aus den Augen auf das lokale Netzwerk verschlüsselt werden.

ssh -d 8888 username@host 
Konfigurieren von Sockenproxy in Firefox

Verwandte Linux -Tutorials:

  • So verhindern Sie die Überprüfung der Konnektivitätskonnektivität von NetworkManager
  • Linux: Setup SSH
  • Dinge zu installieren auf Ubuntu 20.04
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • So richten Sie einen OpenVPN -Server auf Ubuntu 20 ein.04
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • So generieren und verwalten Sie SSH -Tasten unter Linux
  • Mint 20: Besser als Ubuntu und Microsoft Windows?
  • Ubuntu 20.04 SSH -Server
  • Mastering -Bash -Skriptschleifen beherrschen