在Linux系统中,免密钥登录是一种非常实用的功能,它可以让我们在登录系统时无需输入密码,这种功能可以通过多种方式实现,例如使用SSH密钥对、Kerberos认证等,本文将详细介绍如何通过配置SSH密钥对来实现Linux系统的免密钥登录。
生成SSH密钥对
我们需要在本地计算机上生成一对SSH密钥对,这个过程可以分为以下几个步骤:
1、打开终端,输入以下命令来生成SSH密钥对:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-t
选项表示密钥类型,这里我们选择RSA;-b
选项表示密钥长度,这里我们选择4096位;-C
选项表示注释,可以填写你的邮箱地址。
2、按照提示,设置密钥对的存储位置和文件名,默认情况下,密钥对会被存储在~/.ssh/
目录下,文件名为id_rsa
(私钥)和id_rsa.pub
(公钥)。
3、当提示是否要为密钥对设置一个密码时,可以选择“是”或“否”,如果选择“是”,则每次使用密钥对进行身份验证时都需要输入密码;如果选择“否”,则可以直接使用密钥对进行身份验证,无需输入密码。
将公钥复制到远程服务器
接下来,我们需要将生成的公钥复制到远程服务器的~/.ssh/authorized_keys
文件中,这个过程可以通过以下步骤实现:
1、使用以下命令将公钥内容复制到剪贴板:
ssh-copy-id -i ~/.ssh/id_rsa.pub your_username@remote_server_ip_address
-i
选项表示指定公钥文件,这里我们使用刚刚生成的id_rsa.pub
文件;your_username
表示远程服务器上的用户名;remote_server_ip_address
表示远程服务器的IP地址。
2、输入远程服务器的密码,完成公钥复制操作,此时,你应该可以在本地计算机上使用SSH密钥对无密码登录远程服务器了。
配置SSH服务以支持免密钥登录
我们需要在远程服务器上配置SSH服务以支持免密钥登录,这个过程可以通过以下步骤实现:
1、编辑远程服务器上的SSH配置文件,这个文件通常位于/etc/ssh/sshd_config
,你可以使用文本编辑器打开它,
sudo nano /etc/ssh/sshd_config
2、在配置文件中找到以下两行:
AuthorizedKeysFile %h/.ssh/authorized_keys ChallengeResponseAuthentication yes
3、确保这两行的注释符号()已被删除,并将它们设置为以下内容:
AuthorizedKeysFile %h/.ssh/authorized_keys ChallengeResponseAuthentication no
4、保存并关闭配置文件,然后重启SSH服务以使更改生效:
sudo systemctl restart sshd
现在,你应该可以在本地计算机上使用SSH密钥对无密码登录远程服务器了,如果你遇到任何问题,请检查SSH配置文件中的设置是否正确。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/335313.html