本文介绍您在使用密码或密钥时的相关问题及解决方案。
为什么配置了密钥或私钥认证登录服务器,登录时仍提示输入密码?
堡垒机访问服务器时,密钥认证方式的优先级高于密码认证,如果密钥认证失败,会自动跳转到密码认证方式。如果您的主机账户只配置了密钥且没有托管密码,密钥认证失败时会提示您输入服务器的登录密码。
您可以通过以下方式进行排查:
请确保在堡垒机上正确配置了私钥,且通过该私钥可以正常访问服务器,您可以通过使用私钥登录ECS云服务器的方式进行验证。生成密钥及在堡垒机上设置密钥认证的操作,请参见如何生成密钥并设置密钥认证访问服务器?。
说明堡垒机版本不同,配置私钥方式有所差异。请您根据堡垒机的版本,查看对应文档。
V3.1版本,请参见为账户设置SSH私钥。
检查OpenSSH是否升级至9.0及以上版本,或操作系统为Rocky 9、Ubuntu 22.04、Mac 13.0.1及以上版本等。
由于以上情况默认禁用了ssh-rsa公钥签名算法,您可以配置相应文件,手动启用本地客户端或远程服务器ssh-rsa公钥签名算法的参数。
使用客户端(Mac 13.0.1及以上版本)访问堡垒机,您可以参考如下步骤启动客户端ssh-rsa公钥签名算法。
在您的服务器执行以下命令,打开ssh_config配置文件。
vim /etc/ssh/ssh_config
在ssh_config配置文件中,添加如下配置内容并保存。
HostKeyAlgorithms +ssh-rsa PubkeyAcceptedAlgorithms +ssh-rsa
重启sshd服务。
systemctl restart sshd
使用堡垒机访问服务器(Rocky 9、Ubuntu 22.04及以上版本),您可以参考如下步骤启动远程服务器ssh-rsa公钥签名算法。
在您的服务器执行以下命令,打开sshd_config配置文件。
vim /etc/ssh/sshd_config
在sshd_config配置文件中,添加如下配置内容并保存。
HostKeyAlgorithms +ssh-rsa PubkeyAcceptedAlgorithms +ssh-rsa
重启sshd服务。
systemctl restart sshd
通过SSH方式运维登录堡垒机时,能否使用密钥作为认证方式?
运维人员如何修改堡垒机用户密码?
您可以通过以下方式修改堡垒机用户密码:
联系堡垒机实例管理员进行修改。
登录堡垒机实例后,自行修改您的登录密码。具体操作,请参见运维员安全策略。
用户密码到期后,是否影响用户公钥的方式登录堡垒机?
密钥认证不受影响。
如何生成密钥并设置密钥认证访问服务器?
堡垒机支持RSA格式密钥和Ed25519格式密钥。下面以root账号为例,为您介绍如何生成RSA格式的密钥。
在ECS资产,使用以下命令切换到.ssh目录下。
cd ~/.ssh/
在.ssh目录下,执行如下命令,生成RSA密钥。
ssh-keygen -t RSA -m PEM
执行完成后,在当前目录会生成RSA密钥对,即私钥id_rsa和公钥id_rsa.pub。
将私钥id_rsa内容复制到堡垒机主机账户。具体操作,请参见配置主机账户。
执行如下命令,将公钥id_rsa.pub拷贝至authorized_keys目录中。
cp id_rsa.pub authorized_keys
CreateHostAccount接口传参时,密钥需使用base64编码。
密钥认证优先级最高。当密钥认证失败时,会切换到密码验证方式。