出现Permission denied (publickey)的解决方法

2023-05-16

ssh root@10.240.1.161 报错

1. 发现问题
在Linux终端使用ssh root@server_ip来连接到远程服务器时,出现Permission denied (publickey).提示

2. 分析问题
远程主机禁用了ssh密码登录权限
本地访问远程主机的公钥没有添加或者被取消(无法认证)
本地生成的一对秘钥,私钥~/.ssh/id_rsa和公钥~/.ssh/id_rsa.pub。公钥~/.ssh/id_rsa.pub应该保存在远程服务器端已认证的秘钥文件内~/.ssh/authorized_keys

远程服务器公钥文件夹权限错误(.ssh和.ssh/authorized_keys需要保证只有用户自己有权限,否则验证无效)
远程服务器~/.ssh文件夹及其文件权限不对,包括

~./ssh/authorized_keys文件权限
 
~/.ssh文件夹权限
 
~/.ssh文件夹所有权
3. 解决问题
允许ssh密码登录权限
登录目标机器,打开/etc/ssh/sshd_config ,修改PasswordAuthentication no为:
PasswordAuthentication yes。

# vim /etc/ssh/sshd_config
 
PasswordAuthentication yes
然后重启服务。

# service sshd restart
公钥没有添加或被取消(大部分都是这个原因)
如果服务器端根本就没有添加公钥是断然不可能通过认证的。解决:

客户端已经有秘钥对:通过其它方式登录到远程服务器,查看~./ssh/authorized_keys文件中是否添加了公钥,若没有可直接将公钥内容拷贝到该文件末尾。
 
客户端没有秘钥对:通过ssh-keygen命令生成秘钥对,默认文件夹是~/.ssh文件夹,将.ssh文件夹内id_rsa.pub的内容拷贝到服务器上的~./ssh/authorized_keys文件末尾(若服务器上~./ssh/authorized_keys不存在,则也可以使用ssh-keygen来生成文件结构)
如果是你连接公司的项目服务器失败,大概率是你没有在git中配置你的Keys

解决办法:

        打开终端,执行以下代码块:

ssh-keygen -t rsa -C "your.email@guazi.com" -b 4096
pbcopy < ~/.ssh/id_rsa.pub
上述命令会在~/.ssh/目录下生成id_ras.pub公钥,并将其内容复制到剪贴板中,然后浏览器打开你们使用的git地址,选择 Add key,command + v 将你的开发环境的 Public key 添加到信任列表中。

远程服务器公钥文件夹权限错误
通过其它方式登录到远程服务器,然后进行如下操作:

// 更改文件所有权。我用root登录,your_user是root
# chown -R your_user:your_group ~/.ssh  
 
// 更改.ssh文件夹权限
#  chmod 700 ~/.ssh
 
// 更改.ssh/authorized_keys文件权限
# chmod 600 ~/.ssh/authorized_keys
补充知识:ssh会话连接过程
本地向远程服务端发起连接
 
服务端随机生成一个字符串发送给发起登录的本地端
 
本地对该字符串使用私钥(~/.ssh/id_rsa)加密发送给服务端
 
服务端使用公钥(~/.ssh/id_rsa.pub)对私钥加密后的字符串进行解密
 
服务端对比解密后的字符串和第一次发送给客户端未加密的字符串,若一致则判断为登录成功
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

出现Permission denied (publickey)的解决方法 的相关文章

  • Gitee push错误 Access denied: You do not have permission to push to the protected branch ‘master‘ via

    错误 xff1a 首次使用gitee向别人的repo提交代码 xff0c 发现出现权限问题无法push到master xff0c 提交命令如下 xff1a git push u origin master master 错误信息如下 xff
  • Access denied for user ''@'localhost' (using password: YES)错误解决方法

    远程登录被拒绝 xff0c 要改一个表数据的属性让他可以远程登录 解决方法如下 xff0c 执行命令 xff1a mysql gt use mysql mysql gt select host user from user 查看结果是不是r
  • 502 bad gateway原因、解决方法

    nbsp 网上查了查资料 这里记录一下 nbsp nbsp nbsp 在当今时代 每个人都使用互联网 通常 在使用 Internet 和访问网页时 计算机和网站之间可能会出现连接问题 这些连接问题会产生某些错误代码 称为 nbsp HTTP
  • sh: 1: vue-cli-service: Permission denied

    看报错日志 xff0c 权限被拒绝 进入node modules bin 34 ll 34 查看一下会发现该文件 vue cli service 34 并没有可执行权限 chmod R 755
  • git:Clone failed: git: ‘permission denyed‘及Clone failed: git: ‘remote-https‘ is not a git command.

    在centos中 1 Clone failed git 39 permission denyed 39 Could not read from remote repository 问题原因 xff1a git没有设置公钥时 xff0c 将g
  • Linux下如何修改文件夹及子文件夹的权限

    为任何 Web 应用程序设置正确的文件权限是 Web 托管的重要组成部分 在本教程中 您将学习如何在单个命令中递归地更改文件夹和子文件夹的文件权限 如您所知 在 Linux 中 一切都被视为文件 文件夹也称为目录文件 用 表示 d 在权限部
  • 嵌入式linux解决方法

    一 问题描述 u boot version 2016 03 ubuntu version 18 04 ubuntu中环境配置正确 通过其他客户端能够挂载上 但是使用uboot得nfs下载命令会报错 gt nfs 80800000 192 1
  • Android Stuido卡顿解决方法

    修改Android studio的安装目录下bin studio vmoptions和studio64 vmoptions 两个文件的以下属性就可以在内存配置比较大的电脑上有效减少Android Stuido卡顿现象 多开也不怎么卡了 Xm
  • [error] MFC错误不能将参数1从"const char [3]"转换为"const wchar_t *"

    在做项目中经常遇到很多错误 这里我仅仅把自己遇到的一些错误和解决方法写出 供自己和大家查看 代码如下 CRect rect GetClientRect rect CString str str Format ld rect bottom M
  • 如何将 AES 初始化向量传递给混合密码系统的客户端

    我需要实现客户端 服务器通信的安全性 我已经实施了以下混合密码系统 为了在混合密码系统中加密发送给 Alice 的消息 Bob 执行以下操作 获取Alice的公钥 为数据封装方案生成新的对称密钥 使用刚刚生成的对称密钥在数据封装方案下加密消
  • RSA 我应该使用 X.509 还是 PKCS #1

    使用案例 我有一个用例 其中客户端生成私钥和公钥 并将 Base 64 编码的公钥发送到服务器 在服务器端 我将使用此公钥对消息进行加密 并将加密的消息发送到客户端 客户端使用其私钥对其进行解密 商定的算法是 RSA 问题出在服务器端 我发
  • 将非对称算法私钥和公钥与 RSA C# 一起使用

    我有两个包含 RSA 私钥和 RSA 公钥的 AsymmetryAlgorithm 对象 私钥是从 Windows MY 密钥库中检索的 公钥是从用户的证书中检索的 如何在 C 中将这些密钥与 RSACryptoServiceProvide
  • 如何在使用 JSch SFTP 库时解析 Java UnknownHostKey?

    我正在运行一个 java 程序 使用 Java SFTP 将文件从一个文件夹传输到另一个文件夹 我遇到的问题是我在 Java SFTP 使用 JSch 中收到以下错误 C Oracle Middleware Oracle Home orac
  • Windows 中公钥和私钥容器的位置?

    我尝试使用以下代码将我的公钥和私钥存储在容器中 CspParameters cp new CspParameters cp KeyContainerName Test RSACryptoServiceProvider rsa new RSA
  • 用于加密的公钥;解密用的私钥?

    我知道私钥和公钥在数学上是相关的 用一个密钥加密的数据只能用另一个密钥解密 我的问题是私钥总是用于加密数据 而公钥总是用于解密数据 或者可以反过来 如果是这样 您能否给出一些在其他方向使用的示例应用程序 用于加密的公钥和用于解密的私钥 加密
  • Maven 不会使用公钥来部署

    我正在使用 SSH 将我的 Java 工件部署到服务器 我设置了密钥 以便可以交互式 SSH 到服务器而无需密码 但是当我尝试运行 mvn deploy or mvn release perform 命令 它挂起 我认为是密码提示 My m
  • GitHub 的 GPG 公钥是什么?

    如果您通过 GitHub 网站进行编辑 或合并拉取请求 则生成的提交将自动使用 GitHub 的 GPG 密钥进行签名 它看起来像这样 我希望拥有完整的公钥 以便我可以将其添加为我的系统上的可信密钥 GitHub 的 GPG 公钥是什么 G
  • 如何获取网页的公钥?

    如何获取 VeriSign 等网站以及使用 https 安全协议 的所有其他网站的公钥 这取决于您使用的浏览器 如果您让我知道 我会更新我的答案 Chrome 55 及以上您现在可以在开发人员工具中找到此信息 选项 3 个点 gt 更多工具
  • 无法加载 RSA 公钥

    我正在尝试读取如下所示的 RSA 公钥 但在第 6 行出现异常 java security spec InvalidKeySpecException java security InvalidKeyException IOException
  • 从证书 x509 中提取公钥

    我正在寻找一种从 JavaScript 中的证书 x509 PEM 格式 中提取公钥的方法 如下所示 openssl x509 in cert cer pubkey noout gt pub txt 您需要能够解析 ASN 1 结构的东西

随机推荐