Ssh root权限连接不上远程主机,错误提示:publickey 秘钥

本文介绍了如何处理SSH使用root权限连接远程主机时遇到的publickey错误。通过xshell生成RSA密钥对,将公钥导入openstack虚拟机,进行用户身份验证,并开启root和public key auth服务,确保能够成功连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1. xshell生成密钥
  • 属性 -> 生成
    这里写图片描述

  • openstack创建虚拟机,导入pub_key
    这里写图片描述

2. 获取公钥,私钥
root@node:~/.ssh#ls
id_rsa  id_rsa.pub
3. ssh用户身份验证
  • xshell输入
    rsa
4. 开启root和key auth服务
  • 开启root登录权限
PermitRootLogin yes
PasswordAuthentication yes
  • 开启public key登录权限
RSAAuthentication yes
PubkeyAuthentication yes
### SSH连接远程容器时遇到权限被拒绝问题解决方案 当尝试通过`ssh root@localhost`命令连接到本地主机远程容器并收到错误提示 `Permission denied (publickey,password)` 时,这通常意味着SSH客户端无法使用公钥认证成功访问目标机器上的账户。以下是几种可能的原因及对应的解决方法: #### 配置Root用户密码 如果是在某些云服务提供商创建的新实例上操作,则可能存在未给root用户设定密码的情况。此时应该先为root用户设置一个有效的登录密码[^3]。 ```bash sudo passwd root ``` #### 设置无密码SSH登录 为了简化后续的操作流程,建议配置基于密钥的身份验证来代替传统的用户名/密码方式。具体步骤如下所示: - **生成RSA密钥对** 如果尚未拥有个人的SSH密钥对文件,在本机执行下面这条指令来自动生成一对新的私钥和公钥。 ```bash ssh-keygen -t rsa ``` - **复制公钥至目标服务器** 将刚刚产生的`.ssh/id_rsa.pub`里的内容发送到想要建立信任关系的目标节点上去 ```bash ssh-i ~/.ssh/id_rsa.pub root@localhost ``` 上述过程完成后再次尝试带参数直接运行`ssh root@localhost`应当能够顺利进入shell环境而再询问口令了[^1]。 #### 检查sshd配置文件 假如仍然遭遇相同的错误消息,那么可能是由于SSHD守护程序端对于允许哪些账号可以通过何种方式进行身份验证有着更为严格的限制。这时就需要编辑位于`/etc/ssh/sshd_config`路径下的配置文档,特别关注其中是否存在类似于`AllowUsers`这样的条目以及其后的列表里是否有当前试图用来发起请求的那个特定名称。如有必要的话,请按照官方手册调整相应的策略以适应实际需求[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值