Linux有2种登录方式:
- 使用用户名加密码的登录方式;
- 密钥登录;
密钥登录:
- SSH登录是用的RSA非对称加密的,SSH密钥登录的时候可使用RSA密钥登录,SSH有专门创建SSH密钥的工具ssh-keygen
一般的密码方式登录,容易有密码被暴力破解的问题。
- 将 SSH 的端口设置为默认的 22 以外的端口;
- 禁用 root账户登录。
- 通过密钥方式登录。
SSH密钥登录原理:
利用密钥生成器制作一对密钥(一只公钥、一只私钥)。
将公钥添加到服务器的某个账户上,然后在客户端利用私钥即可完成认证并登录。
没有私钥,任何人都无法通过 SSH 暴力破解你的密码来远程登录到系统。- - 如果将公钥复制到其他账户甚至主机,利用私钥也可以登录。
cd到Linux用户目录下的.ssh目录下,root用户是/root/.ssh,普通用户是/home/用户名/.ssh; 执行:
cd /home/普通用户名/.ssh
或者cd /root/.ssh
执行ssh-keygen命令创建密钥对:
ssh-keygen -t rsa
注意: 执行密钥生成命令,基本上是一路回车既可以了,但是需要注意的是:执行命令的过程中是会提示。输入密钥的密码的(如下图,输入两次相同的,即是又一次确认密码),不需要密码直接回车就行。
Enter file in which to save the key (/root/.ssh/id_rsa):
#输入key的保存位置,直接回车即可。
Enter passphrase (empty for no passphrase):
#私钥口令,不需要的话直接回车。
- 密钥生成后会在当前目录下多出两个文件,id_rsa、id_rsa.pub;
- id_rsa:私钥(一般不外泄);
- id_rsa.pub:公钥;
普通用户则还需要注意权限问题:
chmod 700 /home/普通用户/.ssh
chmod 600 /home/普通用户/.ssh/新建或者已存在用来保存公钥的文件
把公钥拷贝到需要登录的远程服务器上,这里可以使用ssh-copy-id自动完成。例如:
for i in {1..3}; do ssh-copy-id ceph$i; done
设置 SSH,打开密钥登录功能,以root用户来操作,
vi /etc/ssh/sshd_config
RSAAuthentication yes PubkeyAuthentication yes PermitRootLogin yes ##root 用户能否通过 SSH
当你完成全部设置,并以密钥方式登录成功后,再禁用密码登录:
PasswordAuthentication no
文章来源:https://www.toymoban.com/news/detail-477681.html
重启 SSH 服务:systemctl restart sshd
或service sshd restart
文章来源地址https://www.toymoban.com/news/detail-477681.html
到了这里,关于Linux创建SSH密钥、设置密钥登录、密钥登录原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!