Git拉代码指定私钥位置


目的:为不同的仓库使用不用的 SSH 私钥!做到互不打扰且安全

除了主要作为版本控制工具外,Git 也提供了几个命令来辅助你调试你的项目源码中的问题。 由于 Git 被设计成适用于几乎所有类型的内容,这些工具也相当通用,但它们往往可以在出现问题时帮助你找到 bug 或者原因。

Git拉代码指定私钥位置


方法一:修改 ~/.ssh/config 配置文件

  • 这种方法比较适合同一个网址没有重复用户的情况,比如你有多个 github 的账户的话就不太适用了。但是永久性上来说,这是最好的。
Host github.com
  User git
  Hostname github.com
  PreferredAuthentications publickey
  IdentityFile /opt/aliyun_ssh_key/id_rsa # 私钥路径
  IdentitiesOnly yes

方法二:将 key 加入到高速缓存中

  • 使用 ssh-add 命令将对应的 key 加入到高速缓存中。

  • 如果不记得自己加入了哪些密钥,只需要使用 ssh-add -l 命令就可列出所有已加入高速缓存的密钥了
    但是唯一的缺陷就是,这只是单次的,电脑重启之后,缓存就会失效,需要重新添加,当然也可以直接编写自动化脚本,每次重启电脑之后自动添加。

# 新增key方法
$ ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_escape -C "escape key for personal server"
$ ssh-keygen -t ed25519 -b 4096 -f ~/.ssh/id_ed25519_escape -C "escape key for personal server"

# 添加私有key到缓存
$ ssh-add id_a_rsa
$ ssh-add id_b_rsa
$ ssh-add id_c_rsa

# 测试是否可用
$ ssh -T [email protected]
$ ssh -T [email protected]
  • ssh-add 是一个用于将私钥添加到 ssh agent 的命令,用于管理和使用 ssh 密钥,以便在进行 ssh 连接时免去每次输入密码的步骤。
# 简单介绍下ssh-add命令的用法
-L:显示已添加的密钥的公钥部分
-l:列出当前 SSH agent 中已添加的密钥
-D:从 SSH agent 中移除所有已添加的密钥
-d:从 SSH agent 中移除指定的密钥
-c:在将密钥添加到 SSH agent 时,要求输入并显示一个用于加密私钥的口令(passphrase)
-q:在运行 ssh-add 时禁用所有警告和信息输出,只显示必要的错误信息
-t life:设置已添加的密钥的有效期(生命周期)

文章作者: Escape
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Escape !