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文件的权限),否则可能导致认证失败。此外,私钥文件需妥善保管,避免泄露导致安全风险。

相关推荐
AlfredZhao4 小时前
生产环境里,为什么不建议把普通端口直接暴露到公网?
linux·https·443·80
戴为沐1 天前
Linux内存扩容指南
linux
zylyehuo2 天前
Linux 彻底且安全地删除文件
linux
用户805533698032 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297912 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
乘云数字DATABUFF2 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
Web3探索者4 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo4 天前
Linux系统中网线与USB网络共享冲突
linux
荣--4 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森4 天前
动手实战学 Docker — 从零到集群编排完全指南
运维