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

相关推荐
ltl13 小时前
内核追踪:ftrace、kprobe、uprobe、tracepoint 生产实战
linux
·薯条大王13 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
小小、码农16 小时前
Linux进程控制:从fork到exec,手写一个简易Shell
linux·运维·服务器
不会就选b17 小时前
Linux之进程间通信(二)---模拟进程池
linux·运维·服务器
沫璃染墨19 小时前
《从零入门Linux系统篇(十五):系统工具篇·六——GDB调试器详解:从程序执行控制到高级调试技巧》
linux·运维·服务器·c语言·c++
AIgorithmGEEK19 小时前
Linux 环境变量完全指南:从入门到理解底层原理
linux·运维·服务器
修罗王20 小时前
Linux Docker 服务管理与排查实战指南(新手速查版)
运维·docker
迪康Defender20 小时前
从静态存储到动态流转:终端透明加密两种模式实战解析
运维·服务器·网络·数据库·其他
酷可达拉斯20 小时前
Linux操作系统-升级OpenSSH修复漏洞
linux·运维·服务器·云计算
Molesidy21 小时前
【Linux】基于busybox的根文件系统的完善
linux·服务器·嵌入式linux