如何在 Linux 中设置 SSH 无密码登录 [3 个简单步骤]
SSH(Secure Shell)是一种开源且受信任的网络协议,用于登录远程服务器执行命令和程序。
它还用于使用安全复制(SCP)命令和rsync 命令通过网络将文件从一台计算机传输到另一台计算机。
在本文中,我们将向您展示如何在基于 RHEL 的 Linux 发行版(例如CentOS、Fedora、Rocky Linux和AlmaLinux)以及基于 Debian 的发行版(例如Ubuntu和Mint )上设置无密码登录,使用ssh 密钥连接到远程Linux服务器而无需输入密码。
使用SSH 密钥进行无密码登录将增加两个 Linux 服务器之间的信任,以便轻松实现文件同步或传输。
我的安装环境
SSH Client : 192.168.0.12 ( Fedora 36 ) SSH Remote Host : 192.168.0.11 ( CentOS 8 )
如果您正在处理多个Linux远程服务器,那么SSH 无密码登录是自动执行任务的最佳方法之一,例如使用脚本自动备份、使用 SCP 命令同步文件以及远程命令执行。
在这个例子中,我们将设置从服务器192.168.0.12以用户example身份通过SSH 无密码自动登录到192.168.0.11以用户sheena 身份登录。
步骤 1:在 – (192.168.0.12)上创建身份验证 SSH-Keygen 密钥
首先使用用户example登录服务器192.168.0.12,并使用以下命令生成一对公钥。
$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/example/.ssh/id_rsa): [Press enter key] Created directory '/home/example/.ssh'. Enter passphrase (empty for no passphrase): [Press enter key] Enter same passphrase again: [Press enter key] Your identification has been saved in /home/example/.ssh/id_rsa. Your public key has been saved in /home/example/.ssh/id_rsa.pub. The key fingerprint is: 5f:ad:40:00:8a:d1:9b:99:b3:b0:f8:08:99:c3:ed:d3 example@example.com The key's randomart image is: +--[ RSA 2048]----+ | ..oooE.++| | o. o.o | | .. . | | o . . o| | S . . + | | . . . o| | . o o ..| | + + | | +. | +-----------------+
第 2 步:将 SSH 密钥上传至 – 192.168.0.11
从服务器192.168.0.12使用 SSH ,并将服务器192.168.0.11上新生成的公钥(id_rsa.pub )上传到sheena的.ssh目录下,文件名为authorized_keys。
$ ssh-copy-id sheena@192.168.0.11
确保在远程服务器上的~/.ssh目录和~/.ssh/authorized_keys文件上设置了正确的权限。
$ ssh sheena@192.168.0.11 "chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"
步骤 3:禁用密码验证(可选)
为了提高安全性,您可以禁用远程服务器上的密码验证,仅允许 SSH 密钥验证。为此,请在远程服务器上打开 SSH 服务器配置文件:
$ sudo nano /etc/ssh/sshd_config OR $ sudo vi /etc/ssh/sshd_config
找到包含PasswordAuthentication的行并将其设置为no。
PasswordAuthentication no
保存文件并重新启动 SSH 服务。
$ sudo systemctl restart sshd
步骤 4:从 192.168.0.12 测试 SSH 无密码登录
从现在开始,您可以以sheena用户的身份从服务器192.168.0.12登录192.168.0.11,作为示例用户,无需密码。
$ ssh sheena@192.168.0.11
在本文中,您学习了如何使用 ssh 密钥设置 SSH 无密码登录。我认为这个过程很简单。如果您有任何疑问,请在下面的评论部分中提出。