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

相关推荐

  • 如何用at命令定时执行任务?

    at命令是Linux/Unix系统中用于安排一次性任务在预设时间点执行的工具,用户指定具体时间或日期后输入要运行的命令或脚本,系统将在设定时刻自动执行该任务,常用于定时关机、备份等单次计划操作。

    2025年7月13日
    800
  • 为何禁用CMD?安全必看

    CMD命令提示符是Windows系统的核心工具,但可能存在安全风险:防止恶意操作:黑客或恶意软件可能通过CMD执行破坏性命令(如格式化硬盘、删除系统文件),企业管控需求:公司IT部门需限制员工执行高危命令(如format、del),家长控制:避免儿童误操作导致系统故障,以下是4种经过验证的禁用方法,适用于Win……

    2025年6月14日
    1500
  • ls命令是什么?

    ls命令是Linux/Unix系统中用于列出目录内容的常用命令,默认显示当前目录下的文件和子目录名称,常配合参数查看文件大小、权限、修改时间等详细信息。

    2025年7月4日
    1300
  • 为何总有人用错expand命令?

    expand命令并非用于解压文件(如.zip、.rar等压缩包),这是一个常见的概念混淆,其真实功能是将文本文件中的制表符(Tab)转换为空格,属于文本处理工具,与文件压缩/解压无关,expand命令的核心功能详解作用场景:当文本文件使用制表符(\t)缩进时,不同编辑器或系统可能显示不一致,expand将制表符……

    2025年7月7日
    1500
  • CAD命令键如何操作?

    CAD命令键是键盘快捷键,用于快速调用软件功能(如画线、保存),通过键盘输入替代菜单点击,能显著提升绘图效率和操作速度。

    11小时前
    300

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信