Linux SSH免密登录实验:基于Xshell的公钥认证机制

一、实验目的

掌握通过Xshell图形化工具 配置SSH密钥认证的方法,实现Windows客户端对Linux服务器的免密码安全登录,理解公钥加密在远程连接中的应用原理。

二、实验原理

SSH密钥认证基于非对称加密技术 ,通过生成一对密钥(公钥和私钥)实现身份验证:

  • 公钥:部署在Linux服务器的**~/.ssh/authorized_keys**文件中,用于加密挑战信息。
  • 私钥:保存在Windows客户端,用于解密服务器发送的挑战,证明身份合法性。
    登录时,服务器用公钥加密随机数据,客户端用私钥解密后返回,验证通过则无需输入密码

三、实验步骤

3.1 搭建及准备实验环境

3.11 搭建实验环境

此实验以Open Eule r为例,具体虚拟机配置过程(RHEL与Open Euler类似)可参考过往文章:https://blog.csdn.net/2502_90206768/article/details/159048098?spm=1011.2124.3001.6209

搭建完成后切记要进行以下操作:

1、修改主机名

2、关闭防火墙

3、关闭SE Linux

bash 复制代码
#关闭防火墙
[root@localhost ~]# systemctl disable --now firewalld
Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service".
Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".

#SELinux------关闭
[root@localhost ~]# vim /etc/selinux/config 
SELINUX=disabled

#查看防火墙状态
[root@localhost ~]# systemctl status firewalld 

#修改主机名字
[root@localhost ~]# hostnamectl set-hostname nanwang
[root@localhost ~]# bash

3.12 准备实验环境

检查 /root/.ssh/authorized_keys 是否存在。若不存在,需手动创建目录和文件

bash 复制代码
[root@kai ~]# cd /root
[root@kai ~]# ls -a
.  ..  anaconda-ks.cfg  .bash_history  .bash_logout  .bash_profile  .bashrc  .cshrc  .lesshst  .tcshrc  .viminfo
[root@kai ~]# mkdir /root/.ssh
[root@kai ~]# touch /root/.ssh/authorized_keys

3.2 生成密钥对(Windows客户端)

  1. 打开Xshell,点击菜单栏工具→用户密钥管理者。
  2. 点击生成,选择密钥类型(推荐RSA,长度2048位),设置密钥名称(如my_ssh_key),无需设置密码(若需更高安全可设置密码短语)。
  3. 生成完成后,在密钥管理器中选中该密钥,点击属性,复制公钥内容(以ssh-rsa开头的字符串)。
bash 复制代码
[root@kai ~]# vim /root/.ssh/authorized_keys     #将拷贝的公钥粘贴
[root@kai ~]# systemctl restart sshd    #重启服务

3.3 配置Xshell会话使用密钥登录

  1. 在Xshell中打开目标会话的属性(或新建会话)。
  2. 进入连接→用户身份验证,设置:
    方法:选择Public Key
    用户名:输入Linux服务器的登录用户名(如root或普通用户)。
    用户密钥:选择之前生成的密钥(如my_ssh_key)。
  3. 点击确定保存配置,重新连接会话。

四、实验结果

  • 成功通过Xshell使用密钥对登录Linux服务器,无需输入用户密码
  • 检查服务器端~/.ssh/authorized_keys文件,确认公钥已正确添加。
  • 客户端Xshell会话属性中,用户身份验证方法显示为Public Key,且密钥名称匹配。

七、实验总结

通过本次实验,掌握了SSH密钥认证的核心流程:本地生成密钥对→公钥部署到服务器→客户端配置私钥验证。相比密码登录,密钥认证具有以下优势:

  • 安全性更高:避免密码被暴力破解或嗅探。
  • 自动化友好:适合脚本批量管理服务器,无需人工输入密码。
  • 便捷性:一次配置后,后续登录无需记忆复杂密码。

注:实验中需注意权限设置的严格性(如.ssh目录和authorized_keys文件的权限),否则可能导致认证失败。此外,私钥文件需妥善保管,避免泄露导致安全风险。

相关推荐
gushinghsjj2 小时前
主数据管理平台如何落地?怎么部署主数据管理平台?
大数据·运维·人工智能
梦想的旅途22 小时前
企微自动化办公:实现外部群聊的高级交互逻辑
运维·数据库·自动化·企业微信·rpa
其实防守也摸鱼5 小时前
GDB安装与配置(保姆级教程)【Linux、Windows系统】
linux·运维·windows·命令模式·工具·虚拟机·调试
Elastic 中国社区官方博客11 小时前
为 Elastic Cloud Serverless 和 Elasticsearch 引入统一的 API 密钥
大数据·运维·elasticsearch·搜索引擎·云原生·serverless
Agent手记11 小时前
制造业数字化升级:生产全流程企业级智能体落地解决方案 —— 基于LLM+超自动化全栈架构的智改数转深度实战
运维·ai·架构·自动化
云安全助手11 小时前
弹性云服务器+高防IP:让DDoS攻击不再是业务“生死劫”
运维·网络·安全
AC赳赳老秦11 小时前
OpenClaw二次开发实战:编写专属办公自动化技能,适配个性化需求
linux·javascript·人工智能·python·django·测试用例·openclaw
深色風信子12 小时前
Docker newapi
运维·docker·容器·newapi
mounter62512 小时前
【内核新动向】告别物理槽位束缚:深度解析 Linux Virtual Swap Space 机制
linux·内存管理·kernel·swap·virtual swap