开发者社区 问答 正文

编辑了 vi /etc/ssh/sshd_config 之后用secureCRT登录不进去了

PasswordAuthentication yes 改成no 之后用secureCRT登录不进去了

展开
收起
1001841565353123 2019-09-04 16:18:21 558 分享 版权
阿里云 AI 助理回答

当你将PasswordAuthentication yes改为no时,这意味着你禁用了SSH的密码认证方式,系统将不再接受通过用户名和密码进行的登录。如果你尝试使用SecureCRT或其他SSH客户端仅凭密码登录,自然就会失败。

若要解决这个问题,你需要采用密钥对认证的方式登录。以下是配置步骤:

  1. 生成密钥对:如果你还没有密钥对,首先在你的本地机器上生成一个。通常可以使用ssh-keygen命令来生成。这个命令会在默认的SSH目录(如~/.ssh/)下创建公钥(id_rsa.pub)和私钥(id_rsa)。

  2. 复制公钥到服务器:然后,你需要将生成的公钥复制到你的远程服务器上。这可以通过运行ssh-copy-id 用户名@服务器地址命令自动完成,或者手动将公钥内容追加到服务器上的~/.ssh/authorized_keys文件中。

  3. 确认SSH服务配置:确保服务器的SSH服务配置(通常是/etc/ssh/sshd_config)中有以下行且未被注释:

    PubkeyAuthentication yes
    AuthorizedKeysFile      .ssh/authorized_keys
    
  4. 重启SSH服务:修改配置后,需要重启SSH服务让更改生效。在大多数Linux发行版中,可以使用如下命令之一:

    • systemctl restart sshd (对于使用systemd的系统)
    • /etc/init.d/ssh restartservice ssh restart (对于较旧的系统)
  5. 使用密钥对登录SecureCRT:最后,在SecureCRT的会话设置中,选择使用密钥文件进行认证。通常在连接设置的“认证”部分,你可以指定之前生成的私钥文件路径。

完成以上步骤后,你应该能够通过密钥对成功登录到你的远程服务器,而无需密码。如果仍然遇到问题,检查服务器的日志文件(如/var/log/auth.log/var/log/secure),可能会提供错误信息帮助诊断问题。

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