转载请注明出处,本文仅用于学习交流,不对之处,恳请指正
由于公司近期将项目都迁移到了github上面,同时所有账户都强制开启了两步验证,所以同步代码需要使用token或者ssh,故而有了这篇文章
密钥路径
-
Linux路径
# 当前用户的.ssh目录 cd ~/.ssh/
-
Windows
# 同样在当前用户的.ssh目录中 cd /c/Users/username/.ssh/
-
MAC
cd ~/.ssh
生成密钥并上传到Github
-
以下以在linux生成密钥为例
# 替换YOU_EMAIL_ADDRESS为你的邮箱地址 ssh-keygen -t rsa -b 4096 -C "YOU_EMAIL_ADDRESS" # 下面说明密钥的存放路径,一般直接回车 # 请注意自己密钥所在的路径是否有以往的密钥 # 可以修改保存地址 Generating public/private rsa key pair. Enter file in which to save the key (/home/user/.ssh/id_rsa): # 是否为密钥创建密码,直接回车可以实现无密码登陆,切记保护好自己的密钥 Enter passphrase (empty for no passphrase): # 输入相同的密码,为空直接回车 Enter same passphrase again: # 保存密码的路径以及说明 Your public key has been saved in /home/user/.ssh/id_rsa.pub The key fingerprint is: SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX YOU_EMAIL_ADDRESS The key's randomart image is: +---[RSA 4096]----+ | X . X . X | | x... ..X.. | | . X X . X | | X. X X . | | X X . . | | X . X . X | | .. X X.XX| | XX X X X .| | .XX+XX+XX=| +----[SHA256]-----+
-
以上代码会在用户目录下的.ssh目录中生成id_rsa(私钥)以及id_rsa.pub(公钥)
-
打印公钥
# 打印公钥并复制到github cat ~/.ssh/id_rsa.pub ssh-rsa XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX== YOU_EMAIL_ADDRESS
-
点击Github右上角头像,选择Settings,在左侧找到SSH and GPG Key,点击New SSH key
在title中填入你想要的名字,在Key中将上方打印出来的公钥复制进来。
使用ssh更新或者拉取代码
-
使用ssh clone 代码
单击clone,将clone方式切换为ssh
# clone 仓库 git clone git@github.com:XXXXX/XXXXXXX.git
-
修改原来仓库的源
# 修改config文件 # 也可以sourceTree中修改 vi ./cx_android_base/.git/config # 将其中的url的值修改为github中复制的ssh链接
配置多个ssh密钥
因为我们可能存在不同的SSH Key来连接不同的服务器,比如个人的VPS等。所以需要配置多SSH Key登陆。在.ssh目录下生成config文件,在这里还是以linux为例子。
nano ~/.ssh/config
在其中写入如下代码
# HOST,别名,一般跟HostName一样就可以
Host github.com
# HostName,真正的域名
HostName github.com
# 验证方式
PreferredAuthentications publickey
# 用户名
User username
# 私钥路径
IdentityFile ~/.ssh/id_rsa_github
测试
# 输入如下代码
ssh -T git@github.com
# 配置成功一般会返回:
Hi UsreName! You've successfully authenticated, but GitHub does not provide shell access.
文章评论