Heim >Computer-Tutorials >Computerwissen >So richten Sie die SSH-Schlüsselauthentifizierung im Linux-System ein
SSH (Secure Shell) ist ein verschlüsseltes Netzwerkprotokoll, das häufig zum sicheren Ausführen von Netzwerkdiensten in unsicheren Netzwerken verwendet wird.
SSH bietet verschlüsselte Kommunikations- und Authentifizierungsmethoden, die die Datenübertragung sicherer und zuverlässiger machen.
SSH-Schlüsselauthentifizierung ist eine sicherere Authentifizierungsmethode und wird häufiger empfohlen als die herkömmliche Passwortauthentifizierung. Was die Sicherheit betrifft, bietet die SSH-Schlüsselauthentifizierung ein höheres Maß an Schutz, da sie auf einem Verschlüsselungsmechanismus öffentlicher und privater Schlüssel basiert und so das Risiko des Passwortknackens effektiv reduziert.
Die Passwortauthentifizierung ist in vielen Fällen nicht sehr sicher, da Passwörter bei der Übertragung erraten, geknackt oder sogar durch Man-in-the-Middle-Angriffe bedroht werden können. Dies unterstreicht, wie wichtig es ist, ausgefeiltere und mehrschichtige Sicherheitsmaßnahmen zu ergreifen, um sicherzustellen, dass die Identitäten und Daten der Benutzer wirksamer geschützt werden.
Die Schlüsselauthentifizierung erfolgt durch die Verwendung einer Kombination aus öffentlichen und privaten Schlüsseln, was die Sicherheit erheblich erhöht.
Der private Schlüssel des Benutzers wird lokal gespeichert, während der öffentliche Schlüssel auf dem Remote-Server gespeichert wird. Diese Anordnung erhöht die Sicherheit, denn selbst wenn ein Angreifer den öffentlichen Schlüssel abfängt, ist es schwierig, den privaten Schlüssel umgekehrt abzuleiten. Diese Methode bietet eine zuverlässigere Authentifizierungsmethode.
Stellen Sie zunächst sicher, dass das OpenSSH-Tool auf Ihrem Linux-System installiert ist.
Bei den meisten Linux-Distributionen ist dieses Tool normalerweise vorinstalliert. Wenn es nicht auf Ihrem System installiert ist, kann es einfach über den Paketmanager installiert werden.
sudo apt update sudo apt install openssh-client openssh-server
sudo yum install openssh-clients openssh-server
ssh-keygen
Sobald OpenSSH installiert ist, können Sie mit dem Befehl ssh-keygen
ein SSH-Schlüsselpaar generieren.
ist wie folgt:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-t rsa
Geben Sie den Schlüsseltyp als RSA an. -b 4096
Geben Sie die Schlüssellänge auf 4096 Bit an, um die Sicherheit zu verbessern. -C "your_email@example.com"
Um einen Kommentar hinzuzufügen, verwenden Sie normalerweise Ihre E-Mail-Adresse. Nachdem Sie das Schlüsselpaar generiert haben, können Sie es am Standardspeicherort (unter dem ~/.ssh/
-Verzeichnis) speichern oder einen anderen Speicherort auswählen.
Das generierte Schlüsselpaar umfasst zwei Dateien: die private Schlüsseldatei (id_rsa
)和公钥文件(id_rsa.pub
). Die private Schlüsseldatei wird lokal gespeichert, während die öffentliche Schlüsseldatei auf den Remote-Server kopiert werden muss.
Private Schlüssel sind vertrauliche Informationen und müssen ordnungsgemäß aufbewahrt werden. Der öffentliche Schlüssel ist eine öffentliche Information, die zur Authentifizierung verwendet wird.
Standardmäßig wird das generierte SSH-Schlüsselpaar im Verzeichnis ~/.ssh/
目录下。这个目录包含了两个主要文件:id_rsa
(私钥)和 id_rsa.pub
des Benutzers gespeichert. Dieses Verzeichnis enthält zwei Hauptdateien: id_rsa
(privater Schlüssel) und id_rsa.pub
(öffentlicher Schlüssel). Dieses Setup soll Benutzern das Auffinden und Verwalten von Schlüsseln bei der Verwendung von SSH erleichtern.
Aber manchmal möchten Sie Ihre Schlüssel aus Sicherheits- oder Organisationsgründen woanders aufbewahren. Dies kann durch die Angabe des Speicherpfades bei der Schlüsselpaargenerierung erreicht werden.
Zum Beispiel:
ssh-keygen -t rsa -b 4096 -f /path/to/your/keys/my_key -C "your_email@example.com"
Dadurch wird der private Schlüssel als /path/to/your/keys/my_key
,公钥存储为 /path/to/your/keys/my_key.pub
gespeichert.
SSH Key Agent ist ein Programm, das private SSH-Schlüssel verwalten und das entschlüsselte Passwort des privaten Schlüssels nach einer Anmeldung zwischenspeichern kann, sodass nachfolgende SSH-Vorgänge keine erneute Eingabe des Passworts erfordern.
1. SSH-Agent starten:
eval "$(ssh-agent -s)"
2. Privaten Schlüssel zum Agenten hinzufügen:
ssh-add ~/.ssh/id_rsa
Auf diese Weise müssen Sie nicht jedes Mal, wenn Sie sich über SSH anmelden, das Passwort für den privaten Schlüssel eingeben, was den Komfort und die Sicherheit der Nutzung erhöht.
Bei der tatsächlichen Verwendung verfügen Sie möglicherweise über mehrere Schlüsselpaare für verschiedene Server oder Zwecke.
Um diese Schlüsselpaare besser zu verwalten, können Sie SSH-Konfigurationsdateien oder Aliase für Schlüsseldateien verwenden.
Bevor Sie sich mithilfe der SSH-Schlüsselauthentifizierung beim Zielserver anmelden können, stellen Sie sicher, dass der SSH-Dienst auf dem Zielserver aktiviert ist. In den meisten Linux-Systemen ist der SSH-Dienst standardmäßig gestartet.
ssh username@your_server_ip
Stellen Sie sicher, dass Sie username
为你的用户名,your_server_ip
durch die IP-Adresse Ihres Zielservers ersetzen. Dadurch wird versucht, sich mit der Standard-Passwortauthentifizierung anzumelden.
Die manuelle Installation eines öffentlichen Schlüssels ist eine grundlegende Methode, bei der der Inhalt Ihres öffentlichen Schlüssels zu einer ~/.ssh/authorized_keys
-Datei auf dem Zielserver hinzugefügt wird.
1. Kopieren Sie den Inhalt des lokalen öffentlichen Schlüssels in die Zwischenablage:
cat ~/.ssh/id_rsa.pub
2. Öffnen Sie auf dem Zielserver die ~/.ssh/authorized_keys
-Datei mit einem Texteditor:
nano ~/.ssh/authorized_keys
3、将剪贴板上的公钥内容粘贴到文件末尾,并保存文件。
4、回到本地机器,尝试使用密钥身份验证登录:
ssh username@your_server_ip
ssh-copy-id
简化公钥部署ssh-copy-id
命令可以简化将本地公钥复制到远程服务器的过程。
这个命令会自动处理将公钥添加到目标服务器的 ~/.ssh/authorized_keys
文件中。
ssh-copy-id username@your_server_ip
确保替换 username
为你的用户名,your_server_ip
为目标服务器的 IP 地址。这个命令将提示你输入用户密码,然后将本地公钥复制到目标服务器上。
通过这两种方法,你可以在目标服务器上配置 SSH 密钥身份验证,提高登录的安全性和便利性。
~/.ssh/config
文件的作用和结构~/.ssh/config
文件是一个用于配置 SSH 客户端行为的配置文件。
它允许你为不同的主机设置自定义的配置选项,从而简化 SSH 连接的管理。
~/.ssh/config
文件:touch ~/.ssh/config
~/.ssh/config
文件:nano ~/.ssh/config
配置文件中可以包含多个主机条目,每个条目定义了连接到远程主机的配置选项。
以下是一个简单的例子:
Host example HostName your_server_ip User username Port 2222 IdentityFile ~/.ssh/id_rsa
Host
:设置别名,用于代替实际的主机名。HostName
:远程主机的 IP 地址或域名。User
:连接时使用的用户名。Port
:SSH 连接的端口号。IdentityFile
:指定用于身份验证的私钥文件路径。以下是一个更为复杂的 ~/.ssh/config
文件,涵盖了多个主机和配置选项:
Host work HostName work.example.com User alice Port 22 IdentityFile ~/.ssh/work_key Host personal HostName personal.example.org User bob Port 2222 IdentityFile ~/.ssh/personal_key Host github HostName github.com User git IdentityFile ~/.ssh/github_key
这样,你只需要使用别名就能够轻松连接到相应的主机,而不必记住每个主机的详细信息。
禁用密码身份验证是提高 SSH 安全性的重要步骤之一。
这样,用户只能通过密钥身份验证进行访问,而不再依赖弱密码。
sshd_config
中禁用密码身份验证:1、打开 sshd_config
文件:
sudo nano /etc/ssh/sshd_config
2、找到并修改以下行:
PasswordAuthentication no
3、保存文件并重新启动 SSH 服务:
sudo service ssh restart
sshd_config
文件设置访问限制sshd_config
文件包含了用于配置 SSH 服务器的各种选项。
通过适当配置,你可以限制用户访问、定义允许登录的用户、设置登录时的认证方式等。
sshd_config
选项:AllowUsers
:指定允许登录的用户列表。DenyUsers
:指定禁止登录的用户列表。AllowGroups
:指定允许登录的用户组列表。DenyGroups
:指定禁止登录的用户组列表。PermitRootLogin
:禁用或限制 root 用户的远程登录。AllowUsers alice bob DenyUsers mallory AllowGroups sshusers DenyGroups badusers PermitRootLogin no
Das obige ist der detaillierte Inhalt vonSo richten Sie die SSH-Schlüsselauthentifizierung im Linux-System ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!