1. 生成密钥对
生成密钥是在Linux系统中使用公钥加密算法的前提,首先需要生成密钥对。
打开终端,输入以下命令:
ssh-keygen -t rsa
按下Enter键,系统会提示你选择密钥保存的位置,默认是在用户主目录的.ssh/文件夹下。
接下来会要求你设置密钥的密码,根据提示输入密码并确认。
生成成功后,系统会显示密钥的指纹信息。
2. 查看公钥
公钥生成成功后,我们需要查看公钥以便后续使用。
在终端输入以下命令,打开公钥文件:
cat ~/.ssh/id_rsa.pub
系统会将公钥的内容输出到终端。
注意:如果密钥文件的名称或路径与默认情况不同,上述命令需要相应修改。
3. 复制公钥
复制公钥是为了将其应用到需要使用公钥来进行认证的场景中。
可以通过两种方式复制公钥:
3.1 复制到剪贴板
在终端输入以下命令,将公钥内容复制到剪贴板:
cat ~/.ssh/id_rsa.pub | xclip -selection clipboard
公钥已复制到剪贴板,可以按需粘贴到其他应用程序中。
3.2 复制到远程服务器
如果你需要将公钥复制到远程服务器上,可以使用以下命令:
ssh-copy-id user@server_address
注意:将"user"替换为远程服务器用户名,"server_address"替换为远程服务器的IP地址或域名。
执行命令后,系统会提示你输入远程服务器密码。输入密码后,公钥将自动复制到远程服务器的~/.ssh/authorized_keys
文件中。
4. 测试公钥认证
完成以上步骤后,我们可以测试公钥认证是否生效。
在终端输入以下命令:
ssh user@server_address
注意:将"user"替换为远程服务器用户名,"server_address"替换为远程服务器的IP地址或域名。
如果公钥认证成功,你将直接登录到远程服务器,而无需输入密码。
5. 设置SSH配置文件
为了方便使用公钥认证,可以编辑SSH配置文件,使其自动使用公钥认证。
首先使用文本编辑器打开SSH配置文件:
sudo nano /etc/ssh/sshd_config
将以下两行配置添加到文件末尾:
RSAAuthentication yes
PubkeyAuthentication yes
保存文件并退出编辑器。
接下来,重启SSH服务以使更改生效:
sudo service ssh restart
现在,你可以使用公钥认证登录远程服务器,无需每次输入密码。
总结
通过以上简单的步骤,我们可以在Linux系统中生成公钥,并应用到各种需要使用公钥进行认证的场景中,提高安全性的同时也方便了登录操作。