windows - Windows/Linux Ubuntu 子系统 Github SSH 设置
问题描述
好的,所以我已经在网上阅读了很多帖子,但没有一个是真正明确的,或者至少对于我的技能水平的人来说。我在 Windows 上设置了 Ubuntu 子系统,我正在尝试设置我的 github 密钥,这样我就不必在每次推送等时登录。
如果您有简单的步骤,请随意忽略下面的其余部分,只是想确保我提供了与我在下面尝试的内容一样多的信息。
我尝试了这种方法,但仍然无法正常工作 -在 Windows 上启动 Git Bash 时运行 SSH 代理
这是我采取的完整步骤
1)我跑了$ ssh-keygen -t rsa -b 4096 -C "my@email.com"
在提示符下按回车键,将键添加到默认位置希望是/.ssh
(在 linux 端)位于此处的 Windows 上:C:\Users\MyUserName\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\MyUserName\.ssh
在此步骤之后添加的文件/.ssh
/.ssh
id_rsa
id_rsa.pub
2)接下来我用 nano 修改了我的 .bashrc
$ nano ~/.bashrc
这开了C:\Users\MyUserName\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\MyUserName\.bashrc
我将以下代码段添加到现有 .bashrc 的末尾
# Set up ssh-agent
SSH_ENV="$HOME/.ssh/environment"
function start_agent {
echo "Initializing new SSH agent..."
touch $SSH_ENV
chmod 600 "${SSH_ENV}"
/usr/bin/ssh-agent | sed 's/^echo/#echo/' >> "${SSH_ENV}"
. "${SSH_ENV}" > /dev/null
/usr/bin/ssh-add
}
# Source SSH settings, if applicable
if [ -f "${SSH_ENV}" ]; then
. "${SSH_ENV}" > /dev/null
kill -0 $SSH_AGENT_PID 2>/dev/null || {
start_agent
}
else
start_agent
fi
3)我跑了source ~/.bashrc
4)创建配置文件$ touch ~/.ssh/config
5)在配置中,这就是我所拥有的以及我认为我可能出错的地方。
这是上面引用的原始帖子的片段
Host github.com-<YOUR_GITHUB_USERNAME>
HostName github.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_work_gmail # path to your private key
AddKeysToAgent yes
Host csexperimental.abc.com
IdentityFile ~/.ssh/id_work_gmail # path to your private key
AddKeysToAgent yes
<More hosts and github configs can be added in similar manner mentioned above>
这是我的
Host github.com-MyGithubUsername
HostName github.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
AddKeysToAgent yes
6)然后我通过运行向代理添加密钥 $ ssh-add ~/.ssh/id_rsa
我跑去$ ssh github.com-MyGithubUsername
检查一切是否正常并回来了
The authenticity of host 'github.com (192.XX.XXX.XXX)' can't be established.
RSA key fingerprint is SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
Are you sure you want to continue connecting (yes/no)?
我打字yes
回来了
Warning: Permanently added 'github.com,192.XX.XXX.XXX' (RSA) to the list of known hosts.
PTY allocation request failed on channel 0
Hi MyUserName! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.
在此之后尝试推送提交,但仍然要求我登录
我也遇到了这篇文章,并尽我所能,但也没有奏效,所以我从头开始尝试了上述方法
任何帮助将不胜感激 :/
解决方案
只要您使用的是 SSH URL,这些步骤就可以了:
cd /path/to/my/repo
git remote -v
如果以 https 开头:
git remote set-url origin github.com-MyGithubUsername:<mylogin>/<myrepo>
请注意,仅当您在设置私钥时添加了密码时才需要 SSH 代理。
推荐阅读
- tensorflow - 如何在 tensorflow.keras 中激活 Relu?
- javascript - 对象数组是要存储在数据库还是 js 文件中?
- node.js - 书架/knex 将时间添加到时间戳
- java - 遗传算法Java,用两个坐标传递函数
- javascript - 如何存储监听器引用?
- sql - 如何在 Oracle SQL 中创建触发器以更改另一个表中的行
- ios - 可以从 collectionViewController 访问位于集合视图单元格内的按钮
- r - 对同一数据使用多个过滤器以在 R 中创建多个输出
- windows - MDT 1709 - 新建服务器 - OSDComputerName 被覆盖
- c# - 使用带有 Active Directory ADFS 的 WPF 客户端对 Cloud NodeJS 后端进行身份验证