Linux 中,可以使用
ssh-keygen
命令生成 RSA 和 DSA 密钥对。,“`bash,# 生成 RSA 密钥,ssh-keygen -t rsa,# 生成 DSA 密钥,
在Linux系统中,开启RSA和DSA加密通常与SSH(Secure Shell)服务的配置相关,用于实现安全的远程登录和其他网络通信,以下是详细的步骤和方法:
生成RSA和DSA密钥对
- 生成RSA密钥对
- 打开终端,输入命令
ssh-keygen -t rsa
,系统会提示选择保存密钥的文件路径,默认是/home/用户名/.ssh/id_rsa
(对于root用户则是/root/.ssh/id_rsa
),直接按回车键使用默认路径,接着系统会要求输入密码短语,这是为了保护私钥的安全,可以根据需要设置一个强密码,也可以直接按回车键留空(但不建议在生产环境中留空),最后系统会开始生成密钥对,这个过程可能需要一些时间,等待生成完成即可。 - 在普通用户目录下执行该命令后,会在
.ssh
目录中生成id_rsa
(私钥)和id_rsa.pub
(公钥)两个文件。
- 打开终端,输入命令
- 生成DSA密钥对
- 类似地,输入命令
ssh-keygen -t dsa
,后续的操作与生成RSA密钥对时相同,系统会提示保存路径和输入密码短语等信息,生成的私钥文件名为id_dsa
,公钥文件名为id_dsa.pub
。
- 类似地,输入命令
配置SSH服务使用RSA和DSA密钥
- 编辑SSH配置文件
- 使用文本编辑器(如
vi
或nano
)打开/etc/ssh/sshd_config
文件,使用vi /etc/ssh/sshd_config
命令打开该文件。 - 在文件中查找以下相关的配置项:
PubkeyAuthentication
:将其值设置为yes
,以启用公钥认证功能,如果前面有注释符号,需要去掉注释符号。AuthorizedKeysFile
:确保其值为.ssh/authorized_keys
,这是默认存放公钥的文件路径。
- 使用文本编辑器(如
- 重启SSH服务
- 保存并关闭
sshd_config
文件后,需要重启SSH服务使配置生效,可以使用命令systemctl restart sshd
(对于使用systemd的系统)或service sshd restart
(对于使用传统init系统的系统)。
- 保存并关闭
将公钥添加到授权列表
- 查看生成的公钥
- 使用命令
cat /home/用户名/.ssh/id_rsa.pub
(对于RSA密钥)或cat /home/用户名/.ssh/id_dsa.pub
(对于DSA密钥)查看生成的公钥内容。
- 使用命令
- 将公钥添加到目标服务器的授权列表
- 可以将公钥内容复制到目标服务器上用户的
.ssh/authorized_keys
文件中,使用ssh 用户名@目标服务器ip "cat >> ~/.ssh/authorized_keys"
命令,然后将本地的公钥内容粘贴进去,按回车键确认添加,或者先将公钥文件传输到目标服务器上,再使用文本编辑器将其内容添加到authorized_keys
文件中。
- 可以将公钥内容复制到目标服务器上用户的
客户端连接测试
- 使用SSH客户端连接
- 在客户端计算机上,打开终端或SSH客户端工具(如PuTTY、SecureCRT等),输入
ssh 用户名@服务器ip
命令尝试连接到开启了RSA或DSA认证的Linux服务器,如果配置正确,系统会使用相应的密钥进行认证,无需输入密码即可登录(前提是在生成密钥对时没有设置密码短语,或者设置了密码短语并正确输入)。
- 在客户端计算机上,打开终端或SSH客户端工具(如PuTTY、SecureCRT等),输入
下面是一个简单的对比表格,展示了RSA和DSA在一些方面的不同:
特性 | RSA | DSA |
---|---|---|
算法类型 | 基于数论中的大素数分解难题 | 基于离散对数问题 |
密钥长度 | 常见的有1024位、2048位等(位数越大,安全性越高,但计算开销也越大) | 通常为1024位等 |
性能 | 在加密和解密操作上相对较快,尤其是在处理大量数据时 | 在签名和验证操作上有一定优势,但在加密和解密大量数据时可能稍慢 |
兼容性 | 被广泛支持和使用,在各种操作系统和网络应用中都有良好的兼容性 | 虽然也被广泛支持,但在某些特定的环境或较新的应用中可能逐渐被替代 |
FAQs
- 问题:如果在生成密钥对时设置了密码短语,每次连接服务器都需要输入密码短语吗?
解答:是的,如果在生成密钥对时设置了密码短语,那么每次使用该密钥进行SSH连接时,系统都会提示输入密码短语,这是为了进一步增强密钥的安全性,防止私钥被盗用,如果不希望每次都输入密码短语,可以在生成密钥对时留空密码短语,但这样做会降低密钥的安全性,尤其是在私钥存储在不安全的环境中时。 - 问题:可以同时使用多个密钥对(如RSA和DSA)进行SSH认证吗?
解答:可以,在SSH配置中,只要PubkeyAuthentication
选项设置为yes
,并且将多个公钥添加到.ssh/authorized_keys
文件中,SSH服务就会尝试使用这些密钥进行认证,系统会按照公钥在authorized_keys
文件中的顺序依次尝试,直到找到一个匹配的密钥为止。
各位小伙伴们,我刚刚为大家分享了有关linux如何开启rsa和dsa的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/11395.html