服务器实现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
相关推荐
何中应2 小时前
vmware的linux虚拟机如何设置以命令行方式启动
linux·运维·服务器
野犬寒鸦2 小时前
从零起步学习并发编程 || 第一章:初步认识进程与线程
java·服务器·后端·学习
江畔何人初2 小时前
kubernet与docker的关系
linux·运维·云原生
bubuly2 小时前
软件开发全流程注意事项:从需求到运维的全方位指南
大数据·运维·数据库
百炼成神 LV@菜哥3 小时前
Kylin Linux V10 aarch64 安装启动 TigerVNC-Server
linux·服务器·kylin
m0_737302583 小时前
百度智能云边缘云服务器,端云协同赋能全域智能场景
服务器
Anastasiozzzz3 小时前
LeetCode Hot100 295. 数据流的中位数 MedianFinder
java·服务器·前端
Exquisite.3 小时前
Nginx
服务器·前端·nginx
j_xxx404_4 小时前
Linux:进程程序替换
linux·运维·服务器
祁鱼鱼鱼鱼鱼4 小时前
Keepalived实验环境设定
linux·服务器·网络