Wie man OpenSSH optimal nutzt
- 4943
- 798
- Ilja Köpernick
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
Softwareanforderungen und Konventionen verwendet
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.
- Die Maschine hinter Nat, die Sie sich bei der Ausstattung anmelden möchten
- Ein im Internet ausgerichteter Server, auf den Sie SSH -Zugriff haben
- 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@hostKonfigurieren 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
- « Aktivieren/deaktivieren Sie die Firewall auf Manjaro Linux
- Konfigurieren von Netzwerk auf Manjaro Linux »