Jiankun
发布于 2025-02-28 / 7 阅读
0
0

服务器远程登录配置指南(SSH密钥认证)

服务器远程登录配置指南(SSH密钥认证)

本文详细介绍了在Ubuntu系统上配置SSH服务的最佳实践,包括服务端配置、密钥对生成、公钥分发方案以及常见故障排查指南。通过遵循这些步骤,您可以显著提升SSH服务的安全性。


一、服务端配置(Ubuntu系统)

1.1 安装SSH服务

首先,确保系统软件包是最新的,然后安装OpenSSH服务:

sudo apt update && sudo apt install openssh-server -y

1.2 安全配置(sshd_config

通过编辑SSH配置文件(/etc/ssh/sshd_config)来增强安全性:

sudo vim /etc/ssh/sshd_config

关键配置项:

Port 2222                   # 使用非标准端口,避免常见扫描
PermitRootLogin no          # 禁止root用户直接登录
PasswordAuthentication no   # 禁用密码认证,强制使用密钥
PubkeyAuthentication yes    # 启用公钥认证
AuthorizedKeysFile .ssh/authorized_keys  # 指定公钥存储路径

1.3 服务管理

配置完成后,重启SSH服务并确保其开机自启:

sudo systemctl restart sshd    # 重启SSH服务
sudo systemctl enable sshd     # 设置开机自启
sudo ufw allow 2222/tcp        # 配置防火墙允许SSH端口

二、密钥对生成(客户端操作)

2.1 生成RSA密钥对

在客户端生成RSA密钥对,建议使用4096位长度:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

提示:

  • 连续回车接受默认路径
  • 建议设置强密码保护私钥

2.2 权限配置

确保密钥文件的权限正确,以防止安全漏洞:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
chmod 600 ~/.ssh/authorized_keys

三、公钥分发方案

3.1 标准服务器部署

将公钥分发到目标服务器:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@server_ip -p 2222

3.2 Windows WSL环境

在Windows WSL环境中配置SSH服务自动启动:

# 创建启动脚本
mkdir -p ~/scripts
nano ~/scripts/ssh_startup.sh

# 写入以下内容:
#!/bin/bash
wsl -d Ubuntu-22.04 exec service ssh restart

# 设置执行权限
chmod +x ~/scripts/ssh_startup.sh

# 添加到Windows任务计划程序
taskschd.msc
→ 创建基本任务 → 触发器选择"当计算机启动时" → 操作选择"启动程序" → 路径指向WSL脚本

3.3 端口转发场景

通过跳板机分发公钥:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@jump_server -p 2222

四、故障排查指南

现象解决方案
认证失败检查~/.ssh/authorized_keys文件权限
服务无法启动查看/var/log/auth.log错误信息
端口被占用执行sudo lsof -i :2222
密钥权限错误重新执行chmod 600 ~/.ssh/id_rsa

五、参考资源


重要提示:建议首次配置时保持 PasswordAuthentication yes 状态,验证密钥登录成功后再关闭密码认证。所有操作完成后务必通过密钥方式测试登录功能。

通过以上步骤,您可以有效提升SSH服务的安全性,并确保远程访问的可靠性。


评论