目录

虚拟机新挂载磁盘后磁盘无法使用ssh问题-Permission-denied-publickey.

虚拟机新挂载磁盘后磁盘无法使用ssh问题 Permission denied (publickey).

在给vmware虚拟机挂载磁盘后再新磁盘目录里面使用ssh拉取代码一直报错:

Permission denied (publickey).

fatal: Could not read from remote repository.

Please make sure you have the correct access rights

and the repository exists.

manifests:

虚拟机可以添加硬盘,如果添加的是物理磁盘

https://i-blog.csdnimg.cn/direct/fa636fa3a57d4c4abf215a3d198e4641.png

这种磁盘在挂载时一般会出现权限不一致问题

比如我将这个磁盘挂载在~/v下面,这个V目录的权限不足需要修改权限777,但就算这样在v目录里面执行git下载之类的还是需要带上sudo

问题来了,ssh设置的时候仅对当前用户生效,带sudo就改变了用户权限,ssh校验就对不上了,所以在使用ssh 下载的时候一定不能带上sudo ,需要先解决sudo权限问题即可

1. SSH 配置对当前用户有效

  • SSH 配置文件(如 ~/.ssh/config 和公私密钥对)存储在当前用户的家目录下。当您以特定用户身份进行 SSH 连接时,系统会使用该用户的 ~/.ssh 目录中的文件进行身份验证。

2. 切换用户或使用 sudo 执行命令

  • 切换用户 :如果您切换到另一个用户(例如使用 susudo su )并尝试执行 SSH 连接,新的用户将不会访问原用户的 ~/.ssh 目录。因此,如果新用户没有配置 SSH 密钥或相关文件,SSH 认证将失败。
  • 使用 sudo 执行命令 :当您以 sudo 执行命令时,默认情况下 sudo 会使用目标用户(通常是 root )的 ~/.ssh 配置,而不是当前用户的配置。这意味着如果 sudo 执行时没有正确的 SSH 配置或密钥对,SSH 连接也会失败。

3. 如何解决这个问题

如果您希望在使用 sudo 或切换用户时仍能使用 SSH,可以采取以下措施:

  • 使用 sudo 保留用户的环境 :通过 sudo -u <username> <command> 可以以指定用户的身份执行命令。例如:

    sudo -u username ssh user@remote_host

    这将使用用户 lijilei 的 SSH 配置。

  • 手动配置 sudo 使用原用户的 .ssh 配置 :您可以配置 sudo 保留用户的环境变量,这样在使用 sudo 时仍然能够访问原用户的 SSH 密钥。例如,可以在 /etc/sudoers 文件中添加以下内容:

    Defaults    env_keep += "HOME"

    这将允许 sudo 保留当前用户的 HOME 环境变量,使得 ~/.ssh 目录中的密钥和配置文件仍然可用。

  • 将 SSH 密钥复制到其他用户 :如果您需要为多个用户配置 SSH 密钥,可以将原用户的 ~/.ssh/id_rsa (私钥)和 ~/.ssh/id_rsa.pub (公钥)复制到其他用户的 ~/.ssh 目录中。