一、功能介绍
免密登录的原理:通过密钥认证登录,首先在自己的服务器上生成公钥和私钥,其次将公钥上传到远程服务中,在于远程服务器建立连接通信时,远程服务器首先会验证该服务器上是否包含请求服务器的公钥,若不包含则需要远程登录的用户输入密码。
二、操作流程
- 首先将公钥添加至服务器端的公钥凭证
- 步骤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:编辑文件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:编辑文件sshd_config
vi /etc/ssh/sshd_config
- 步骤2:修改文件内的这些配置项
# 是否允许密码登录
PasswordAuthentication no
最后重启sshd服务即可。
systemctl restart sshd