密码与密钥相关问题

本文介绍您在使用密码或密钥时的相关问题及解决方案。

为什么配置了密钥或私钥认证登录服务器,登录时仍提示输入密码?

堡垒机访问服务器时,密钥认证方式的优先级高于密码认证,如果密钥认证失败,会自动跳转到密码认证方式。如果您的主机账户只配置了密钥且没有托管密码,密钥认证失败时会提示您输入服务器的登录密码。

您可以通过以下方式进行排查:

  1. 请确保在堡垒机上正确配置了私钥,且通过该私钥可以正常访问服务器,您可以通过使用私钥登录ECS云服务器的方式进行验证。生成密钥及在堡垒机上设置密钥认证的操作,请参见如何生成密钥并设置密钥认证访问服务器?

    说明

    堡垒机版本不同,配置私钥方式有所差异。请您根据堡垒机的版本,查看对应文档。

  2. 检查OpenSSH是否升级至9.0及以上版本,或操作系统为Rocky 9、Ubuntu 22.04、Mac 13.0.1及以上版本等。

    由于以上情况默认禁用了ssh-rsa公钥签名算法,您可以配置相应文件,手动启用本地客户端或远程服务器ssh-rsa公钥签名算法的参数。

    • 使用客户端(Mac 13.0.1及以上版本)访问堡垒机,您可以参考如下步骤启动客户端ssh-rsa公钥签名算法。

      1. 在您的服务器执行以下命令,打开ssh_config配置文件。

        vim /etc/ssh/ssh_config
      2. 在ssh_config配置文件中,添加如下配置内容并保存。

        HostKeyAlgorithms +ssh-rsa
        PubkeyAcceptedAlgorithms +ssh-rsa
      3. 重启sshd服务。

        systemctl restart sshd
    • 使用堡垒机访问服务器(Rocky 9、Ubuntu 22.04及以上版本),您可以参考如下步骤启动远程服务器ssh-rsa公钥签名算法。

      1. 在您的服务器执行以下命令,打开sshd_config配置文件。

        vim /etc/ssh/sshd_config
      2. 在sshd_config配置文件中,添加如下配置内容并保存。

        HostKeyAlgorithms +ssh-rsa
        PubkeyAcceptedAlgorithms +ssh-rsa
      3. 重启sshd服务。

        systemctl restart sshd

通过SSH方式运维登录堡垒机时,能否使用密钥作为认证方式?

可以。当使用SSH方式登录堡垒机60022端口时,您可以使用密钥或密码作为认证方式。

运维人员如何修改堡垒机用户密码?

您可以通过以下方式修改堡垒机用户密码:

  • 联系堡垒机实例管理员进行修改。

  • 登录堡垒机实例后,自行修改您的登录密码。具体操作,请参见运维员安全策略

用户密码到期后,是否影响用户公钥的方式登录堡垒机?

密钥认证不受影响。

如何生成密钥并设置密钥认证访问服务器?

堡垒机支持RSA格式密钥和Ed25519格式密钥。下面以root账号为例,为您介绍如何生成RSA格式的密钥。

  1. 在ECS资产,使用以下命令切换到.ssh目录下。

    cd ~/.ssh/
  2. .ssh目录下,执行如下命令,生成RSA密钥。

    ssh-keygen -t RSA -m PEM

    执行完成后,在当前目录会生成RSA密钥对,即私钥id_rsa和公钥id_rsa.pub。

  3. 将私钥id_rsa内容复制到堡垒机主机账户。具体操作,请参见配置主机账户

  4. 执行如下命令,将公钥id_rsa.pub拷贝至authorized_keys目录中。

    cp id_rsa.pub authorized_keys
说明
  • CreateHostAccount接口传参时,密钥需使用base64编码。

  • 密钥认证优先级最高。当密钥认证失败时,会切换到密码验证方式。