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

相关推荐
夏日听雨眠7 小时前
LInux(逻辑地址与物理地址的区别,文件描述符,lseek函数)
linux·运维·网络
哲霖软件8 小时前
ERP 赋能非标自动化行业:破解物料与库存管理难题
运维·自动化
qq_542515419 小时前
Ubuntu 22.04.4 LTS安装ToDesk最新版打不开,无响应?旧版本4.7.2_277版本分享
linux·ubuntu·todesk
火车叼位9 小时前
替代 Tiny Win10 的 Linux 方案:Debian XFCE 精简桌面搭建
linux·运维
小麦嵌入式9 小时前
FPGA入门(四):时序逻辑计数器原理与 LED 闪烁实现
linux·驱动开发·stm32·嵌入式硬件·fpga开发·硬件工程·dsp开发
皮卡蛋炒饭.10 小时前
传输层协议UDP
linux·网络协议·udp
syagain_zsx10 小时前
Linux指令初识(实用篇)
linux·运维·服务器
OYangxf10 小时前
Git Commit Message
运维·git
Alter123011 小时前
从“力大砖飞”到“拟态共生”,新华三定义AI基础设施的系统级进化
大数据·运维·人工智能
王木风11 小时前
终端里的编程副驾:DeepSeek-TUI-项目深度拆解,实测与原理分析
linux·运维·人工智能·rust·node.js