Windows通过密钥访问github
介绍
在MacOS及Linux中,我通过SRA密钥来访问Github的,现在弄了Windows电脑,记录一下怎么实现操作。
秘钥访问Github
Windows秘钥访问Github
- 确定是否安装了
git。
$ git version
git version 2.47.1.windows.1如果没有安装,可以先安装git。windows安装并使用git。
- 查看并拷贝
RAS公钥。秘钥的生产查看windows生成RAS密钥
$ cat .\mt_github_id_ed25519.pub | clip- 在
Github中添加公钥
登录Github后,进入Settings->SSH and GPG keys->New SSH key粘贴上公钥,然后取个便于区别密钥来源的名称就行了。
测试一下联通性。
$ ssh -T git@github.com
git@github.com: Permission denied (publickey).这就是还没通,需要检查是否配置了,大概率是没有配置config。
- 配置
~/.ssh/config文件。
$ ls
目录: C:\Users\matia\.ssh
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2025/1/7 23:17 MT
-a---- 2025/1/7 22:46 935 known_hosts没有config文件需要先创建文件。
在.ssh目录下创建config文件。
# 创建 config 文件
New-Item -Path $HOME\.ssh\config -ItemType File在 Linux 或 macOS 的终端中:
# 创建 config 文件
touch ~/.ssh/config提示
Windows 中创建文件和Linux区别还是挺大的!
创建config文件
New-Item -Path $HOME\.ssh\config -ItemType File
目录: C:\Users\matia\.ssh
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2025/1/8 0:10 0 config查看.ssh文件夹
$ ls
目录: C:\Users\matia\.ssh
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2025/1/7 23:17 MT
-a---- 2025/1/8 0:10 0 config
-a---- 2025/1/7 22:46 935 known_hostsWindows中使用notepad编辑config文件,Linux或macOS中使用vi或vim编辑。
$ notepad $HOME\.ssh\config会弹出编辑页面,这里有点儿奇怪,在编辑时下划线不会显示,不知道是不是我显示器的问题(显示器比较差)。
- 确认一下啊编辑器保存的内容
$ cat config
# Github
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/MT/id_ed25519/mt_github_id_ed25519注意 IdentityFile的路径是Windows中保存了对应私钥的路径。还有就是这里使用了默认端口,所以没有写,如果使用其他端口需要配置一下端口。
再次测试连通性
$ ssh -T git@github.com
Hi matiastang! You've successfully authenticated, but GitHub does not provide shell access.这就表面,我们通过RAS密钥成功连接了Github。
- (可选)启动
SSH代理并添加私钥
如果你为私钥设置了密码,每次使用 SSH 时都需要输入该密码。为了避免频繁输入密码,你可以使用 SSH 代理来缓存你的私钥。
启动 SSH 代理:
$ eval $(ssh-agent -s)添加私钥到 SSH 代理:
$ ssh-add ~/.ssh/id_ed25519或者,如果你使用的是 RSA 密钥:
$ ssh-add ~/.ssh/id_rsa如果你有多个密钥,确保添加的是你为 GitHub 生成的私钥。
提示 只需要通过ssh-add命令把需要的私钥添加到SSH代理中即可。
- (可选)自动启动
SSH代理
你可以通过修改 .bashrc 或 .zshrc 文件(取决于你使用的 Shell),使 SSH 代理在每次打开终端时自动启动。
示例(.bashrc 或 .zshrc):
# 启动 SSH 代理
if [ -z "$SSH_AUTH_SOCK" ]; then
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
fi提示 让 SSH 代理自动启动,这里是每次打开终端时都会启动。也可以写成一个脚本文件,配置脚本文件在启动时自动执行,反正只要能执行 SSH 代理启动命令并添加私钥即可,方法挺多。
注意 前面所有的命令均在Windows PowerShell中执行的。
思考
这个流程感觉也和Linux和MacOS上的差不多,只是在Windows上有些命令不一样而已,大体思路还是一样的。
