一:秘钥对认证

1:什么是秘钥对

秘钥对,在本地设备中创建一对秘钥,其中一个是私钥(保存在本地设备中),另一个是公钥(传到远程服务器中),使用公钥加密的消息只能使用对应的私钥 解密。

2:秘钥对执行过程

  • 使用秘钥对认证方式登录远程设备时,远程设备会随机创建一个消息,使用公钥加密,然后把密文发送给本地设备。
  • 本地设备收到密文后使用私钥解密,然后把解密后的消息发送给远程服务器。
  • 远程服务器验证解密后的消息之后,再赋予你访问服务器的权限。

二:秘钥对使用命令

1:本地设备生成秘钥对

ssh-keygen

2:私钥保存在本地设备,公钥复制到服务器中

#末尾:符号,这个命令会把公钥复制到远程服务器中deploy用户的家目录里
scp ~/.ssh/id_rsa.pub deploy@123.456.78.90:

mkdir ~/.ssh

#创建~/.ssh/authorized_keys文件
touch ~/.ssh/authorized_keys

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

chown -R deploy:deploy ~/.ssh
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

三:禁用密码,禁用根用户登录

1:禁用密码和根用户登录

vim /etc/ssh/sshd_config
PasswordAuthentication no
PermitRootLogin no

2:重启ssh服务器,让改动生效

#ubuntu
sudo service ssh restart

#centos
sudo systemctl restart sshd.service