我可以直接在 git 中使用 SSH 密钥,而不依赖于 ssh-agent 吗?

我可以直接在 git 中使用 SSH 密钥,而不依赖于 ssh-agent 吗?

我有一个 SSH 密钥,可以让我推送到某个存储库。密钥本身没有问题 - 但是,我不想将密钥复制到.ssh文件夹或将 SSH 密钥保留在 ssh-agent 中(在其他计算机上),而是希望有一个可移植的脚本解决方案。

-i所以我正在寻找与连接时如何指定身份的等效方法ssh

ssh -i /my/individual/path/id_rsa user@server

另外,例如,使用 GitHub 上的 HTTPS,我可以在线生成令牌,然后执行以下操作:

git remote add origin "https://[email protected]/USER/REPO.git"

是否有类似的 SSH 密钥,以便我可以直接在 git 中使用它们?

答案1

是的...您可以使用 ~/.ssh/config 而不是 ssh-agent
只需将其添加到~/.ssh/config文件中

Host github.com
  IdentityFile /my/individual/path/id_rsa

答案2

GIT_SSH_COMMAND环境变量可用于更改 Git 将使用的 SSH 命令:

GIT_SSH_COMMAND="ssh -i /path/to/your/id_rsa" git clone git@whatever

或者,有core.sshCommand设置为git config

git config core.sshCommand "ssh -i /path/to/your/id_rsa"

您还可以使用相对路径。因此,如果您将id_rsa密钥保留在存储库根文件夹的父文件夹中,则以下配置将使git命令使用该密钥 - 无论哪个存储库文件夹是当前工作目录:

git config core.sshCommand "ssh -i ../id_rsa"

笔记:您还应该添加-F /dev/null这些命令以防止本地 ssh 配置/etc/ssh/ssh_config~/.ssh/config读取。例如,它们可能包含AddKeysToAgent yes自动将密钥添加到ssh-agent.

相关内容