1. 生成 SSH 密钥对
首先,我们需要生成一对 SSH 密钥,其中包括私钥和公钥。私钥将保存在本地主机上,而公钥将被复制到远程主机上以进行身份验证。
在终端中执行以下命令来生成 SSH 密钥对:
ssh-keygen -t rsa
生成命令会要求你输入密钥文件的保存路径和文件名,以及一个可选的密码(用于保护私钥)。如果你没有指定路径和文件名,则默认情况下将在 ~/.ssh 目录下生成密钥文件 id_rsa 和 id_rsa.pub。
2. 复制公钥到远程主机
接下来,我们需要将公钥复制到远程主机上,以便进行身份验证。
在终端中执行以下命令来复制公钥到远程主机(假设远程主机的 IP 地址为 remote_host,用户名为 username):
ssh-copy-id username@remote_host
执行该命令后,系统会要求你输入远程主机的密码。输入正确的密码后,公钥将被复制到远程主机上的 ~/.ssh/authorized_keys 文件中。
如果 ssh-copy-id 命令不可用,你可以手动将公钥内容复制到远程主机的 ~/.ssh/authorized_keys 文件中。使用以下命令将公钥复制到远程主机:
cat ~/.ssh/id_rsa.pub | ssh username@remote_host 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'
3. 配置 SSH 连接
一旦公钥被成功地复制到远程主机上,我们需要对远程主机 SSH 连接进行一些配置,以确保无密码登录的顺利进行。
打开远程主机 SSH 配置文件:
sudo vi /etc/ssh/sshd_config
确保以下设置被正确配置:
RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no
上述设置将启用 RSA 密钥身份验证,并禁用密码身份验证。
保存并关闭文件。
重启 SSH 服务以使更改生效:
sudo service ssh restart
无密码登录测试
现在,你应该可以通过无密码登录的方式连接到远程主机。
在终端中执行以下命令来测试无密码登录(假设远程主机的 IP 地址为 remote_host,用户名为 username):
ssh username@remote_host
如果一切顺利,你将能够无需输入密码即可成功登录到远程主机。
本文为原创文章,版权归123ppp资源网所有,欢迎分享本文,转载请保留出处!