怎样在CentOS上配置SSH并使用PuTTY连接?

在现代IT运维中,通过SSH(Secure Shell)协议远程管理服务器是不可或缺的技能,CentOS作为企业级Linux发行版的佼佼者,其SSH服务的配置与安全至关重要,本文将详细介绍如何在CentOS服务器上配置SSH服务,并指导用户如何使用Windows平台上流行的PuTTY工具进行安全、高效的远程连接。

怎样在CentOS上配置SSH并使用PuTTY连接?

第一步:CentOS 服务器端 SSH 配置

在开始连接之前,我们需要确保CentOS服务器上的SSH服务(通常为OpenSSH)已经正确安装、运行并经过了安全优化。

检查并启动SSH服务

大多数CentOS安装默认会包含OpenSSH服务器,您可以通过以下命令检查其运行状态:

systemctl status sshd

如果服务未运行,可以使用以下命令启动并设置其开机自启:

sudo systemctl start sshd
sudo systemctl enable sshd

核心配置文件 /etc/ssh/sshd_config

SSH服务的主要配置文件是 /etc/ssh/sshd_config,建议在修改前先创建一个备份:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

使用文本编辑器(如 vinano)打开该文件进行修改,以下是一些关键配置项及其说明,合理配置它们能显著提升服务器的安全性。

配置项 默认值 建议值 说明
Port 22 2222 (或其他非标准端口) 更改默认端口可以有效抵御自动化扫描攻击。
PermitRootLogin yes no 禁止root用户直接登录,是重要的安全措施,普通用户登录后可使用 sudo 提权。
PasswordAuthentication yes no 在配置好密钥登录后,建议禁用密码登录,强制使用更安全的密钥认证。
PubkeyAuthentication yes yes 确保启用公钥认证,这是SSH最安全的认证方式之一。
AllowUsers (注释) user1 user2 明确指定只允许哪些用户通过SSH登录,拒绝其他所有用户。

修改完配置文件后,务必保存并重启SSH服务以使更改生效:

怎样在CentOS上配置SSH并使用PuTTY连接?

sudo systemctl restart sshd

防火墙配置

如果您修改了SSH的默认端口(从22改为2222),必须在防火墙中放行新的端口,CentOS 7及以后版本默认使用 firewalld

# 添加新端口到public区域
sudo firewall-cmd --permanent --zone=public --add-port=2222/tcp
# 重载防火墙配置
sudo firewall-cmd --reload

第二步:使用 PuTTY 从 Windows 客户端连接

PuTTY是Windows平台上一款免费、开源的SSH客户端,功能强大且广受欢迎。

基本密码连接

  1. 下载与运行:从PuTTY官网下载最新版本的 putty.exe 并运行。
  2. 配置连接信息
    • Host Name (or IP address): 输入您的CentOS服务器的IP地址或域名。
    • Port: 输入您在服务器上配置的SSH端口(若未修改则为22)。
    • Connection type: 确保选择为 “SSH”。
  3. 保存会话:在 “Saved Sessions” 输入一个易于识别的名称(如 “MyCentOS-Server”),然后点击 “Save” 按钮,方便下次快速连接。
  4. 发起连接:点击 “Open” 按钮,首次连接时,会弹出一个安全警告,提示服务器的密钥指纹未被缓存,点击 “是” 接受并保存该指纹。
  5. 登录:在打开的终端窗口中,依次输入您的用户名和密码,即可成功登录。

更安全的连接方式:SSH 密钥认证

使用密钥对(公钥和私钥)进行认证比传统密码更安全。

  1. 生成密钥对

    • 运行PuTTY套件中的 PuTTYgen.exe
    • 选择 “SSH-2 RSA” 参数,设置密钥长度(建议2048位或更高),然后点击 “Generate”。
    • 在生成过程中,需在空白区域随意移动鼠标以增加随机性。
    • 生成后,可以为密钥设置一个密码(passphrase),增加一层保护。
    • 点击 “Save private key” 将私钥(.ppk 文件)保存在您的Windows计算机上。
    • 复制文本框中显示的全部公钥内容。
  2. 在CentOS服务器上配置公钥

    • 使用密码方式登录到您的CentOS服务器。
    • 在用户家目录下创建 .ssh 目录(如果不存在),并设置正确权限:
      mkdir -p ~/.ssh
      chmod 700 ~/.ssh
    • 将从PuTTYgen复制的公钥内容粘贴到 ~/.ssh/authorized_keys 文件中:
      echo "粘贴您的公钥内容" > ~/.ssh/authorized_keys
      chmod 600 ~/.ssh/authorized_keys
  3. 在PuTTY中配置私钥

    怎样在CentOS上配置SSH并使用PuTTY连接?

    • 打开PuTTY,加载您之前保存的会话。
    • 在左侧导航栏中,依次展开 “Connection” -> “SSH” -> “Auth”。
    • 在 “Private key file for authentication” 框中,点击 “Browse” 按钮,选择您之前保存的 .ppk 私钥文件。
    • 返回到 “Session” 界面,点击 “Save” 保存会话配置。

当您点击 “Open” 连接服务器时,PuTTY会使用私钥进行认证,您只需输入私钥的密码(如果设置了),而无需再输入系统用户密码。

安全最佳实践小编总结

  • 禁用密码登录:在确保密钥登录正常工作后,将 sshd_config 中的 PasswordAuthentication 设为 no
  • 禁止root登录:始终使用普通用户登录,通过 sudo 执行管理命令。
  • 使用非标准端口:有效减少恶意扫描和暴力破解。
  • 限制登录用户:利用 AllowUsersAllowGroups 指令,实现最小权限原则。
  • 定期更新系统:保持OpenSSH和整个系统的软件包为最新版本,修复已知安全漏洞。

相关问答 (FAQs)

问题1:使用PuTTY连接时提示 “Connection refused”(连接被拒绝)怎么办?
解答:这个错误通常意味着服务器在指定端口上没有响应,请按以下步骤排查:

  1. 网络连通性:在Windows的命令提示符中使用 ping <服务器IP> 确认网络是否通畅。
  2. SSH服务状态:登录服务器(可通过控制台),检查 systemctl status sshd 确保服务正在运行。
  3. 端口与防火墙:确认PuTTY中填写的端口号与服务器 sshd_config 文件中 Port 的设置一致,如果修改了端口,请务必检查服务器的防火墙(firewall-cmd --list-all)是否已放行该端口。
  4. SELinux:如果SELinux处于强制模式,并且修改了默认端口,可能需要使用 semanage port -a -t ssh_port_t -p tcp <新端口号> 来允许SSH在新端口上监听。

问题2:配置SSH密钥后,PuTTY仍然提示 “Server refused our key”(服务器拒绝了我们的密钥)?
解答:这个问题通常与服务器端的文件权限或配置有关,请检查以下几点:

  1. :确保该文件权限为 600 (-rw-------),权限过于宽松(如对其他用户可读)会导致SSH服务出于安全考虑而忽略它。
  2. :确保用户家目录下的 .ssh 目录权限为 700 (drwx------)。
  3. 用户家目录权限:确保用户家目录本身不能对其他用户有写权限。
  4. :检查 /etc/ssh/sshd_config 文件,确保 PubkeyAuthentication yes 这一项没有被注释掉或设置为 no
  5. 公钥格式:确保粘贴到 authorized_keys 文件中的公钥内容是完整的一行,没有多余的空格或换行符。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-07 06:16
下一篇 2025-10-07 06:19

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信