Linux创建SSH密钥、设置密钥登录、密钥登录原理

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

在这里插入图片描述

重启 SSH 服务:
systemctl restart sshd
service sshd restart

猜你喜欢

转载自blog.csdn.net/qq_37432174/article/details/129192807