开发者社区 问答 正文

远程登陆的login账号

你好!我的服务器登陆ssh会报“Connection closed.”的错误。想登陆阿里云的远程后台,但用root不能登陆进去,请问如何登陆阿里云的远程后台。

展开
收起
1373873950686640 2019-03-15 10:52:35 602 分享 版权
阿里云 AI 助理回答

您好!根据您描述的问题“SSH登录报‘Connection closed.’错误,并且无法使用root用户登录阿里云远程后台”,以下是详细的解决方案,帮助您排查和解决问题。


1. 确认问题原因

“Connection closed.”错误可能由以下原因导致: - SSH服务未启动:服务器上的SSH服务可能未正常运行。 - SELinux服务开启:系统启用了SELinux服务,可能导致root用户无法登录。 - SSH配置文件限制/etc/ssh/sshd_config文件中可能存在限制root用户登录的配置(如PermitRootLogin设置为no)。 - 用户权限控制AllowUsersDenyUsers等参数可能限制了root用户的登录权限。 - 密钥认证问题:如果服务器仅允许密钥认证,而未正确配置公钥,也可能导致连接失败。


2. 解决方案

步骤 1:通过VNC方式登录ECS实例

由于您无法通过SSH登录,建议使用阿里云提供的VNC登录功能进入实例。具体操作如下: 1. 登录阿里云控制台。 2. 找到目标ECS实例,点击右侧的远程连接 > VNC连接。 3. 使用VNC登录后,切换到root用户(如果当前不是root用户):

sudo su -

步骤 2:检查并修复SSH服务状态

  1. 检查SSH服务是否已启动:
    systemctl status sshd.service
    

    如果服务未启动,执行以下命令启动并设置开机自启:

    systemctl start sshd.service
    systemctl enable sshd.service
    
  2. 如果启动失败,请检查日志以定位问题:
    journalctl -xe
    

步骤 3:修改SSH配置文件

  1. 备份原始配置文件:
    cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
    
  2. 编辑/etc/ssh/sshd_config文件:
    vi /etc/ssh/sshd_config
    

    修改以下关键参数: - 将PermitRootLogin设置为yes,允许root用户登录:

    PermitRootLogin yes
    
    • 确保PasswordAuthentication设置为yes,允许密码认证:
      PasswordAuthentication yes
      
    • 检查是否有AllowUsersDenyUsers限制,确保root用户未被拒绝登录。
  3. 保存并退出编辑器,然后重启SSH服务:
    systemctl restart sshd.service
    

步骤 4:关闭SELinux服务

如果系统启用了SELinux服务,可能会导致root用户无法登录。您可以临时或永久关闭SELinux: 1. 临时关闭(无需重启实例):

setenforce 0
  1. 永久关闭: 编辑/etc/selinux/config文件:
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    

    然后重启实例使配置生效。

步骤 5:检查密钥认证配置

如果您使用的是密钥认证方式,请确保公钥已正确添加到authorized_keys文件中: 1. 检查~/.ssh/authorized_keys文件是否存在:

ls -l ~/.ssh/authorized_keys
  1. 如果不存在,将本地公钥复制到服务器:
    echo "您的公钥内容" >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    

步骤 6:验证修复结果

完成上述操作后,尝试重新通过SSH登录服务器。如果仍然失败,请查看日志以进一步排查问题:

cat /var/log/secure

3. 其他注意事项

  • 安全组规则:确保阿里云安全组规则允许SSH端口(默认22)的访问。
  • 防火墙配置:检查服务器本地防火墙是否阻止了SSH连接:

    firewall-cmd --list-all
    

    如果需要开放SSH端口:

    firewall-cmd --add-port=22/tcp --permanent
    firewall-cmd --reload
    
  • 数据安全提醒:在修改配置文件或进行其他高风险操作前,建议创建快照备份重要数据,以防止意外数据丢失。


通过以上步骤,您应该能够成功解决“Connection closed.”错误并恢复SSH登录功能。如果问题仍未解决,请提供更多详细信息(如日志内容),以便进一步分析。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答