服务器实现ssh证书登录

1.生成公钥和私钥

ssh-keygen -t rsa

提示默认生成位置为/root/.ssh/id_rsa ,直接回车。(也可以自己修改)

提示输入证书的密码,可以留空,建议输入,如果输入了,则需要再次确认,记住这个证书密码(证书再加一层密码,这样即使证书丢失,也有第二个保险,有个缓冲时间)

2.将公钥添加到 authorzied_keys文件中(在被登录的linux服务器操作)

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

3.下载私钥

进入目录 cd /root/.ssh/ 下载id_rsa这个文件

4.测试使用证书登录

建议先用证书登录,成功后再禁止密码登录,以免出错导致要重装系统

5.配置ssh文件

当使用证书登录成功后,编辑配置文件 vi /etc/ssh/sshd_config

PermitRootLogin 将值修改为 without-password //允许root登录,但只允许证书登录

PasswordAuthentication 将值修改为no //禁止密码登录

文件修改保存后,刷新ssh配置文件

systemctl restart sshd

此时原来密码登陆的ssh还能用,但是关闭再打开就不行了,证书登录正常

6.创建新用户使用证书登录

powershell 复制代码
adduser 用户名
切换到用户 
su 用户名
ssh-keygen -t rsa                    //生成密钥
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys                //将当前用户的公钥放到对应home下
下载对应用户的私钥
分配权限(root角色)
sudo chown 用户名:用户名 /home/用户名/.ssh/authorized_keys
sudo chmod 700 /home/用户名/.ssh
sudo chmod 600 /home/用户名/.ssh/authorized_keys

7.刷新ssh配置(root角色)

powershell 复制代码
systemctl restart sshd
相关推荐
代码AI弗森2 小时前
一文理清楚“算力申请 / 成本测算 / 并发评估”
java·服务器·数据库
^—app5668663 小时前
游戏运存小启动不起来临时解决方法
运维·服务器
Ujimatsu3 小时前
虚拟机安装Debian 13.x及其常用软件(2026.4)
linux·运维·ubuntu
志栋智能4 小时前
超自动化安全:构建智能安全运营的核心引擎
大数据·运维·服务器·数据库·安全·自动化·产品运营
Edward111111115 小时前
4月28日防火墙问题
linux·运维·服务器
想学后端的前端工程师6 小时前
【补充内外网突然不通的情况】
运维·服务器
面汤放盐6 小时前
何时使用以及何时不应使用微服务:没有银弹
java·运维·云计算
子琦啊6 小时前
【算法复习】字符串 | 两个底层直觉,吃透高频题
linux·运维·算法
跨境数据猎手7 小时前
跨境独立站系统技术拆解(附带源码)
服务器·前端·php