为什么我可以在 Git Bash 应用程序中使用 RSA 密钥,但不能在 Windows 机器上的 Ubuntu WSL 中使用?

为什么我可以在 Git Bash 应用程序中使用 RSA 密钥,但不能在 Windows 机器上的 Ubuntu WSL 中使用?

我需要从 Gitea 克隆一个存储库,我通常在 Mac 上进行此操作,但我没有带 Mac。使用 Git Bash for Windows 时,将 RSA 密钥放在 C\Users\me 中的 .ssh 文件夹中后,我能够在 Windows 上克隆存储库,但无法使用 WSL 进行此操作。然后,我尝试复制 C\Users\me.ssh 中的文件并将它们放在 Linux 文件系统的 .ssh 文件夹中。没有成功。我尝试删除 WSL .ssh 文件夹并将其设为 C\Users\me.ssh 文件夹的符号链接,但仍然没有成功。我该如何修复此问题?

答案1

我认为这是权限问题。SSH 密钥是私有数据。在 Ubuntu/Linux 中,它们必须具有限制权限,因此只有所有者用户可以读取它们。 您可以通过以下命令设置适当的权限:

sudo chown -R "$USER:$USER" ~/.ssh # make sure the files are owned by the user
find ~/.ssh -type d -exec chmod 700 {} \; # set drwx------ permissions for the dirs
find ~/.ssh -type f -exec chmod 600 {} \; # set -rw------- permissions for the files
  • 注意,~/代表用户的$HOME目录,即/home/<user>/

另一个可能造成麻烦的因素是你创建文件的方式。在 Windows 中,行以换行符和回车符 ASCII 字符结尾,但 Unix 只使用换行符。在这种情况下,你可以通过以下方式处理 ssh 密钥文件dos2unix或者你也可以使用其他方法,显示在这里

也可以看看:

相关内容