SSH 配置免密登录

一、功能介绍

免密登录的原理:通过密钥认证登录,首先在自己的服务器上生成公钥和私钥,其次将公钥上传到远程服务中,在于远程服务器建立连接通信时,远程服务器首先会验证该服务器上是否包含请求服务器的公钥,若不包含则需要远程登录的用户输入密码。

二、操作流程

  1. 首先将公钥添加至服务器端的公钥凭证
  • 步骤1:编辑文件~/.ssh/authorized_keys,将公钥添加至文件中
echo 你的公钥内容 >> ~/.ssh/auth

如果提示错误“No such file or directory”,请执行以下命令后再次执行上一步:

mkdir ~/.ssh
  • 步骤2:修改文件权限,将文件权限设置为600,文件夹权限为700
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
  1. 服务器端开启密钥登录模式
  • 步骤1:编辑文件sshd_config
vi /etc/ssh/sshd_config
  • 步骤2:修改文件内的这些配置项
# 是否允许 root 远程登录,如果只有用户root此项请设置为yes
PermitRootLogin no

# 密码登录是否打开
PasswordAuthentication yes

# 开启公钥认证
RSAAuthentication yes
PubkeyAuthentication yes

# 存放登录用户公钥的文件位置
# 位置就是登录用户名的家目录下的 .ssh
# root 就是 /root/.ssh
# ks 就是 /home/ks/.ssh
AuthorizedKeysFile .ssh/authorized_keys
  • 步骤3:重启sshd服务
systemctl restart sshd
  • 步骤4:测试使用密钥登录,如果可以正常登录,说明配置成功
ssh -i ~/.ssh/id_rsa username@ip
  1. 为了服务器安全,将密码登录关闭
  • 步骤1:编辑文件sshd_config
vi /etc/ssh/sshd_config
  • 步骤2:修改文件内的这些配置项
# 是否允许密码登录
PasswordAuthentication no

最后重启sshd服务即可。

systemctl restart sshd