GNU/Linux
Secure Shell (SSH)
Suche…
Einführung
Eine sichere Shell wird verwendet, um über eine verschlüsselte Verbindung von einem Client aus remote auf einen Server zuzugreifen. OpenSSH wird als Alternative zu Telnet-Verbindungen verwendet, die einen Remote-Shell-Zugriff erzielen, jedoch unverschlüsselt sind. Der OpenSSH-Client ist standardmäßig auf den meisten GNU / Linux-Distributionen installiert und wird für die Verbindung zu einem Server verwendet. Diese Beispiele zeigen, wie Sie die SSH-Suite verwenden, um SSH-Verbindungen anzunehmen und eine Verbindung zu einem anderen Host herzustellen.
Verbindung zu einem Remote-Server
Um eine Verbindung zu einem Server herzustellen, müssen wir SSH auf dem Client wie folgt verwenden:
# ssh -p port user@server-address
- port - Der empfangende ssh-Port des Servers (Standardport 22).
- user - Muss auf dem Server mit SSH-Berechtigungen vorhanden sein.
- Serveradresse - Die IP / Domäne des Servers.
Für ein reales Beispiel können Sie so tun, als würden Sie eine Website erstellen. Das Unternehmen, das Sie als Host für Ihre Site ausgewählt haben, teilt Ihnen mit, dass sich der Server bei web-servers.com an einem benutzerdefinierten Port von 2020 befindet und Ihr Kontoname usr1 ausgewählt wurde, um einen Benutzer auf dem Server mit SSH-Berechtigungen zu erstellen. In diesem Fall wäre der verwendete SSH-Befehl so
# ssh -p 2020 [email protected]
Wenn der Kontoname auf dem Remote-System mit dem des lokalen Clients identisch ist, können Sie den Benutzernamen deaktivieren. Wenn Sie usr1
auf beiden Systemen usr1
sind, können Sie einfach web-servers.com
anstelle von [email protected]
.
Wenn Sie nicht direkt auf einen Server zugreifen können, zu dem Sie eine Verbindung herstellen möchten, können Sie den ProxyJump-Switch verwenden, um eine Verbindung über einen anderen Server herzustellen, auf den Sie zugreifen können, und eine Verbindung mit dem gewünschten Server.
# ssh -J [email protected]:2020 [email protected] -p 2222
Auf diese Weise können Sie über den Server 10.0.0.1 (auf dem s20 auf dem Port 2020 ausgeführt wird) eine Verbindung zum Server 10.0.0.2 (mit ssh auf Port 2222) herstellen. Sie müssen natürlich Konten auf beiden Servern haben. Beachten Sie auch, dass der Schalter -J in OpenSSH Version 7.3 eingeführt wurde.
OpenSSH-Suite installieren
Sowohl für die Verbindung mit einem openssh
SSH-Server als auch für die Annahme von SSH-Verbindungen ist die Installation von openssh
erforderlich
Debian:
# apt-get install openssh
Arch Linux:
# pacman -S openssh
Yum:
# yum install openssh
Generieren Sie öffentlichen und privaten Schlüssel
So generieren Sie Schlüssel für den SSH-Client:
ssh-keygen [-t rsa | rsa1 | dsa ] [-C <comment>] [-b bits]
Zum Beispiel:
ssh-keygen -t rsa -b 4096 - C [email protected]
Der Standardspeicherort ist ~/.ssh/id_rsa
für private und ~/.ssh/id_rsa.pub
für öffentlichen Schlüssel.
Für weitere Informationen besuchen Sie bitte man.openbsd.org
Konfigurieren eines SSH-Servers zum Akzeptieren von Verbindungen
Zuerst müssen wir die SSH-Daemon-Konfigurationsdatei bearbeiten. Unter verschiedenen Linux-Distributionen kann sich diese /etc/ssh/sshd_config
in verschiedenen Verzeichnissen befinden. Normalerweise wird sie unter /etc/ssh/sshd_config
Verwenden Sie Ihren Texteditor, um die in dieser Datei gesetzten Werte zu ändern. Alle Zeilen, die mit # beginnen, werden auskommentiert und müssen dieses Zeichen entfernen, damit sie wirksam werden. Eine Liste von Empfehlungen folgt als solche.
Port (chose a number between 0 - 65535, normaly greater than four digits)
PasswordAuthentication yes
AllowUsers user1 user2 ...etc
Beachten Sie, dass es vorzuziehen ist, alle Kennwortanmeldungen gemeinsam zu deaktivieren und SSH-Schlüssel zu verwenden, um die Sicherheit zu verbessern, wie in diesem Dokument beschrieben.
Deaktivieren Sie den SSH-Dienst
Dadurch wird der SSH-Server-seitige Dienst deaktiviert, da bei Bedarf sichergestellt wird, dass Clients keine Verbindung über SSH herstellen können
Ubuntu
sudo service ssh stop
Debian
sudo /etc/init.d/ssh stop
Arch Linux
sudo killall sshd
Passwortlose Verbindung (über ein Schlüsselpaar)
Zunächst benötigen Sie ein Schlüsselpaar. Wenn Sie noch keinen haben, werfen Sie einen Blick auf das Thema "Generieren von öffentlichen und privaten Schlüsseln".
Ihr Schlüsselpaar besteht aus einem privaten Schlüssel (id_rsa) und einem öffentlichen Schlüssel (id_rsa.pub). Sie müssen ~/.ssh/authorized_keys
den öffentlichen Schlüssel auf den Remote-Host kopieren und dessen Inhalt zur Datei ~/.ssh/authorized_keys
hinzufügen.
Eine einfache Möglichkeit, dies zu tun, ist:
ssh <user>@<ssh-server> 'cat >> ~/.ssh/authorized_keys' < id_rsa.pub
Wenn der öffentliche Schlüssel ordnungsgemäß im Heimatverzeichnis des Benutzers gespeichert ist, müssen Sie sich nur mit dem entsprechenden privaten Schlüssel anmelden:
ssh <user>@<ssh-server> -i id_rsa