要求:阅读本博文需要你有git、ssh、rsa相关知识
针对人群:本博文主要为想要使用自己指定的ssh-key文件名进行git操作提供一种方法。不自己指定而是使用默认的文件名不需要看此教程,因为那个没这么费劲。
-
以管理员身份运行powershell
-
使用你的github账号邮箱生成一个ssh key
# -t:指明你要使用的加密算法;-C:指明你的GitHub登录邮箱;-f:指明你想让你生成的密钥文件放在哪里。执行命令后,会生成两个文件,私钥的名字就是你命令中写的名字,公钥的名字比私钥的名字多了.pub后缀 ssh-keygen -t ed25519 -C "your@mail.com" -f "你想让github ssh key存放的路径"
-
查看是否设置ssh-agent,如果未设置,则设置ssh-agent
# -l:列出你当前所有的添加到ssh-agent的ssh情况。下图中的情况表示ssh-agent未运行 ssh-add -l # 设置ssh-agent自动启动 Set-Service ssh-agent -StartupType Automatic # 启动ssh-agent Start-Service ssh-agent # 获取当前正在运行的ssh-agent信息 Get-Service ssh-agent
-
将你的github ssh key添加到ssh agent
# ssh-add 后面跟的是你刚才产生的密钥存放的位置(就是第2步生成的那个文件),这里说的是私钥所在的文件(不明白就去百度RSA算法) ssh-add.exe $HOME\.ssh\id_rsa_github
-
复制你的github ssh key的私钥到剪贴板
# 这行命令实现将将你的公钥复制到剪贴板 Get-Content $HOME\.ssh\id_rsa_github.pub | Set-Clipboard
-
登录你的GitHub账户,添加ssh key的公钥
-
点击New SSH key
-
填写Title和Key
-
添加后的效果
下面的内容一般情况下并不需要设置,到第 9 步其实已经可以实现功能。
-
编辑
~/.ssh/config
文件添加以下内容
此处还有其他方法,此方法是使用较广的一种,其他的方法,可以点此链接跳转:传送门,还没写,先占位,后面填坑Host github.com Hostname github.com # 我的私钥路径是:~/.ssh/id_rsa-remote-ssh-github,这里改为你自己的私钥路径 IdentityFile ~/.ssh/id_rsa-remote-ssh-github IdentitiesOnly yes
-
添加remote
# notessh 是你为remote起的别名,随便起 # git@github.com:sober-orange/mynote.git 是你的仓库ssh链接 git remote add notessh git@github.com:sober-orange/mynote.git
-
提交代码
# 以下两行命令等价 # 我这里主分支是main,是因为我把原来的主分支名:master改了。不明白我说的说明你git还没学 git push --set-upstream notessh main git push -u notessh main
参考文献
https://www.163.com/dy/article/GHCG1C5B0511DSSR.html
https://docs.github.com/cn/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent