引言
- GIT作为开发人员常用的工具,在使用过程中,频繁输入账号密码,造成不便,所以一般都会配置SSH密钥,是使用过程中更加方便。
- 这里会列举如何绑定GitHub的SSH和如何绑定多个不同的远程仓库(其实可以用同一个密钥,根据个人情况,我是为了和公司的区分开,以免混乱)。
- 推荐一个不错的GIT命令使用教程【GIT教程】
SSH绑定与多绑定
- 生成一对密钥
# 这里如果要配置不同的远程仓库,比如github、gitee、gitlab等,修改最后面的xxx即可。如果只绑定一个或不区分,无需使用:-f。一路确认即可 # 由于 GitHub 在 2022 年 3 月 15 日之后将不再支持 RSA 算法生成的密钥,原因是 RSA 不够安全,所以不再使用如下命令 # ssh-keygen -t rsa -C "xxx@xx.com" -f ~/.ssh/id_rsa_xxx # 改用ed25519加密算法 ssh-keygen -t ed25519 -C "xxxxxx@163.com" eval `ssh-agent` ssh-add ~/.ssh/id_ed25519 # 查询密钥 cat ~/.ssh/id_ed25519.pub # 填充GitHub的SSH中即可。下方多配置方案,暂时没去测试,但感觉和RSA通用,有兴趣可自行测试
- 绑定多个SSH,请配置config(无需请跳过该步骤)
cd ~/.ssh # 没有config文件的,新建一个 vim config
- config配置
# gitlab Host gitlab.com HostName gitlab.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_gitlab # github Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_github # 配置文件参数 # Host Host可以看作是一个你要识别的模式,对识别的模式,进行配置对应的的主机名和ssh文件 # HostName 要登录主机的主机名 # User 登录名 # PreferredAuthentications publickey,password,keyboard-interactive # IdentityFile 指明上面User对应的identityFile路径
- 远程仓库添加sshkey
# 如果没绑定多个,没有_xxx cat ~/.ssh/id_rsa_xxx.pub # 复制公钥,在远程仓库中在设置中找到相应的位置添加sshkey即可
- 配置GIT用户名和邮箱
# --global 配置全局。去掉配置当前仓库 git config --global user.name "xxx" # 配置用户名 git config --global user.email "xxx@xx.com" # 配置邮箱
- 验证是否成功
# xxx替换为绑定远程仓库的地址,比如:github ssh -T git@xxx.com # 看到下面类似的输出,说明成功 # Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.
命令详情
- ssh-keygen
常用参数 描述 -b 指定密钥长度 -e 读取已有私钥或者公钥文件 -f 指定用来保存密钥的文件名 -t 指定要创建的密钥类型 -C 添加注释