CentOS下SSH连接失败怎么办?

基础连接方法

安装SSH客户端

CentOS通常预装OpenSSH客户端,若未安装则执行:

sudo yum install openssh-clients  # CentOS 7
sudo dnf install openssh-clients  # CentOS 8+

基本连接命令

ssh username@server_ip
  • 参数说明
    • username:远程服务器的用户账号(如 root 或自定义用户)
    • server_ip:服务器IP地址或域名(如 168.1.100example.com

示例

ssh admin@203.0.113.5

首次连接会提示确认主机指纹,输入 yes 后继续,再输入对应用户密码即可登录。


高级连接配置

指定端口连接

若服务器SSH端口非默认22(如 2222):

ssh -p 2222 username@server_ip

密钥认证登录(推荐)

步骤

  1. 生成本地密钥对
    ssh-keygen -t rsa -b 4096  # 默认存储到 ~/.ssh/id_rsa
  2. 上传公钥到服务器
    ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip

    输入密码后,公钥将自动追加到服务器的 ~/.ssh/authorized_keys

  3. 免密登录
    ssh username@server_ip  # 无需密码直接登录

常见问题解决

连接超时/拒绝连接

  • 检查网络ping server_ip
  • 确认服务状态
    ssh -v username@server_ip  # 启用详细日志
  • 服务器端排查
    • 防火墙是否放行端口:
      sudo firewall-cmd --list-ports  # 查看开放端口
      sudo firewall-cmd --add-port=22/tcp --permanent  # 开放22端口
      sudo firewall-cmd --reload
    • SSH服务是否运行:
      sudo systemctl status sshd  # 检查状态
      sudo systemctl start sshd   # 启动服务

密钥登录失败

  • 权限配置
    确保服务器上以下文件权限正确:

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
  • 关闭密码登录(增强安全)
    编辑服务器 /etc/ssh/sshd_config

    PasswordAuthentication no  # 禁用密码登录
    PubkeyAuthentication yes   # 启用密钥登录

    重启服务:sudo systemctl restart sshd


安全最佳实践

  1. 禁用root登录
    修改服务器 /etc/ssh/sshd_config

    PermitRootLogin no
  2. 修改默认端口
    Port 22 改为其他端口(如 1022),减少暴力破解风险。
  3. 使用强密码
    若需密码登录,确保密码长度>12位,含大小写字母、数字及符号。
  4. 定期更新
    sudo yum update openssh*  # CentOS 7
    sudo dnf upgrade openssh  # CentOS 8+

常用命令总结

命令 作用
ssh user@host 基础连接
ssh -p port user@host 指定端口连接
ssh -i ~/.ssh/custom_key user@host 使用自定义密钥
scp -P port file user@host:/path 安全传输文件

通过以上步骤,您可高效安全地管理远程服务器,建议优先使用密钥认证,并定期审计服务器日志(/var/log/secure)以监控异常登录。

引用说明基于OpenSSH 8.0官方文档、CentOS系统手册及Linux安全最佳实践编写,所有命令均在CentOS 7/8真实环境测试通过,技术细节参考Red Hat Enterprise Linux (RHEL) 官方安全指南。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6590.html

(0)
酷番叔酷番叔
上一篇 2025年7月7日 14:53
下一篇 2025年7月7日 15:03

相关推荐

  • ASP如何隐藏网址?实现方法与注意事项

    在Web开发中,ASP(Active Server Pages)作为一种经典的服务器端脚本环境,常用于构建动态网页,而“隐藏网址”则是ASP开发中一项常见需求,其核心目的是通过技术手段隐藏或伪装真实的URL路径,从而提升安全性、优化用户体验或实现特定业务逻辑,本文将详细解析ASP隐藏网址的多种实现方式、原理及注……

    3天前
    400
  • PS动作批量裁剪怎样更高效?

    在Photoshop中录制包含裁剪步骤的动作,然后通过“文件˃自动˃批处理”功能,选择该动作和目标文件夹,即可自动批量裁剪所有图片,大幅提升效率。

    2025年7月14日
    5300
  • Debian如何切换至多用户命令模式?

    临时切换(无需重启)从图形界面切换到命令模式 sudo systemctl isolate multi-user.target执行后系统立即退出图形界面,进入纯命令行终端(TTY),从命令模式返回图形界面 sudo systemctl isolate graphical.target若系统安装了桌面环境(如GN……

    2025年7月2日
    5200
  • 如何在命令提示符配置VC++编译器环境?

    第一步:安装Visual Studio下载并安装Visual Studio,勾选 “使用C++的桌面开发” 工作负载,安装时务必包含 MSVC工具集(如MSVC v143)和 Windows SDK,第二步:配置环境变量方法1:通过开发者脚本自动配置(推荐)打开命令提示符(Win+R → 输入cmd),运行VS……

    2025年7月1日
    4400
  • 如何精确查看已安装软件?

    命令行卸载软件全指南命令行卸载软件是高效管理系统的核心技能,尤其适合批量操作、远程服务器维护或解决图形界面异常的场景,以下是Windows、macOS和Linux三大系统的详细方法,遵循最小权限原则和操作规范,避免误删系统组件,Windows系统方法1:PowerShell(推荐)# 卸载软件(以Google……

    2025年6月24日
    4800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信