在 WSL 中使用 SSH 连接到 Github 的问题

Muh*_*suf 5 github ssh-keys windows-subsystem-for-linux

我想在我的 WSL 中使用 SSH 协议连接到 github,我按照此处github 文档中的每一步进行操作。密钥已生成,我已经测试了我的连接,但仍然无法正常工作。每次将代码推送到 github 时,我仍然必须输入用户名或密码。谁可以帮我这个事?

我也这样做了。

# start the ssh-agent in the background
$ eval $(ssh-agent -s)
> Agent pid 59566

$ ssh-add ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)

PS:我不知道这是否相关,但我的 WSL 和我的 bash 根文件夹中有两个 .ssh 目录。它在我的 bash 中有效,因为我猜 VS Code 为我生成了 SSH 密钥。

上面是我在 WSL 中的 SSH,下面是我在 bash 中的 SSH(这个正在工作)

编辑:我猜是 ssh-agent 不起作用

bk2*_*204 6

如果系统提示您输入用户名和密码,则您可能正在尝试使用 HTTPS 协议而不是 SSH。您可以使用 来查看 URL 的样子git remote -v。如果您想更改为使用 SSH 协议,您可以使用类似的内容git remote set-url origin git@github.com:git/git.gitgit/git.git您要推送到的存储库在哪里)。

一般来说,尝试通过 SSH 连接到 GitHub 不会提示您输入用户名和密码,因为 GitHub 不支持通过 SSH 进行密码身份验证。


Nol*_*ait 6

在 WSL 2 上,我使用 SSH 提交到 GitHub,发现每次都要求我输入密码。经过几个小时的搜索和尝试几种方法(其中的警告是我无法忍受的),这对我有用。

安装钥匙扣

sudo apt install keychain
Run Code Online (Sandbox Code Playgroud)

然后将以下行添加到 shell 的配置文件中(可能~/.bashrc是 或~/.zshrc):

eval `keychain --quiet --eval --agents ssh id_rsa`
Run Code Online (Sandbox Code Playgroud)

现在,您只需在启动 WSL 时输入密码即可!

本文归功于 Birk Holland 。