前提条件
- 本地 Linux 环境
已安装 Linux 系统(如 Ubuntu/CentOS),并确保系统运行正常。
- Xshell 安装
- 从 NetSarang 官网 下载正版 Xshell(个人/学校用户可免费使用)。
- 网络配置
本地 Linux 需与主机在同一局域网(如通过 NAT 或桥接模式联网)。
- SSH 服务状态
Linux 必须开启 SSH 服务(默认端口 22),否则无法连接。
详细步骤
步骤 1:获取 Linux 的 IP 地址
在 Linux 终端执行以下命令:
ip addr show | grep "inet " hostname -I
输出示例:
inet 192.168.1.105/24
记录 IP 地址(如 168.1.105
),若使用虚拟机,确保网络模式为 桥接 或 NAT(避免 Host-Only 模式)。
步骤 2:开启 SSH 服务
- 检查 SSH 状态:
systemctl status sshd # Ubuntu/Debian systemctl status ssh # CentOS/RHEL
- 若未安装或未运行:
sudo apt install openssh-server # Ubuntu/Debian sudo yum install openssh-server # CentOS/RHEL sudo systemctl start sshd # 启动服务 sudo systemctl enable sshd # 设置开机自启
步骤 3:配置 Xshell 连接
- 打开 Xshell,点击菜单栏 文件 → 新建。
- 会话设置:
- 名称:自定义(如 “Local-Linux”)。
- 协议:选择 “SSH”。
- 主机:输入步骤 1 获取的 IP 地址(如
168.1.105
)。 - 端口号:默认
22
(若已修改端口需同步调整)。
- 用户身份验证:
- 方法选择 “Password”。
- 输入 Linux 的 用户名 和 密码(建议使用普通用户,非 root)。
- 点击 连接 → 接受主机密钥指纹提示 → 完成登录。
常见问题及解决方案
问题 | 原因 | 解决方法 |
---|---|---|
连接超时/失败 | 防火墙拦截或 IP 错误 | 关闭 Linux 防火墙:sudo ufw disable (临时)或放行端口 sudo ufw allow 22 |
SSH 服务未运行 | SSH 未安装或未启动 | 执行 sudo systemctl start sshd 并检查状态 |
拒绝连接 (Connection refused) | 端口错误或 SSH 未监听 | 确认端口:netstat -tuln | grep 22 ,修改端口需编辑 /etc/ssh/sshd_config |
密码认证失败 | 用户名/密码错误 | 检查 Linux 用户权限,或通过 passwd 重置密码 |
安全建议(关键!)
- 使用密钥认证替代密码
- 在 Xshell 中生成密钥(工具 → 用户密钥管理者),将公钥复制到 Linux 的
~/.ssh/authorized_keys
中。 - 在会话属性中切换认证方式为 “Public Key”。
- 在 Xshell 中生成密钥(工具 → 用户密钥管理者),将公钥复制到 Linux 的
- 修改默认 SSH 端口
- 编辑
/etc/ssh/sshd_config
,将Port 22
改为其他端口(如2222
),重启服务:sudo systemctl restart sshd
。
- 编辑
- 禁用 root 登录
- 在
sshd_config
中设置PermitRootLogin no
,仅允许普通用户登录后切换权限。
- 在
通过 Xshell 连接本地 Linux,不仅能提升操作效率(如复制粘贴、多会话管理),还可模拟真实服务器环境进行安全演练,务必遵循安全建议,避免暴露敏感服务,此方法适用于开发、运维及学习场景,是掌握 Linux 管理的必备技能。
引用说明:
- SSH 协议规范参考 RFC 4251。
- 安全配置依据 Linux 官方文档(Ubuntu / CentOS)。
- Xshell 操作指南来自 NetSarang 官方手册(Xshell 7 Help)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5134.html