在 Linux 上设置 git 私有 SSH 密钥的自定义路径

发布于 2024-10-22 02:36:47 字数 105 浏览 8 评论 0原文

我正在尝试在 Linux 上设置 git 客户端。我将私钥上传到计算机,并且我知道我应该将其放在 ~/.ssh 中,但我无权访问该文件夹。

我如何告诉 git 在其他地方寻找私钥?

I'm trying to setup a git client on linux. I uploaded my private key to the machine, and I understand that I should put it in ~/.ssh, but I don't have access to that folder.

How can I tell git to look for the private key somewhere else?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

凉风有信 2024-10-29 02:36:47

您可以使用 ssh 配置文件 来实现这一点。

首先在您的 ~/.ssh 文件夹中创建一个名为 config 的文件,您可以使用如下命令

$ nano ~/.ssh/config

然后,文件的内容应该包含您的密钥的位置基于每个主机名。例如:

Host github.com
 IdentityFile ~/myPublicKeyFolder/myGitHubFile
Host heroku.com
 IdentityFile ~/myPublicKeyFolder/myHerokuFile

因此,当 git 尝试访问每个主机时,它将根据您尝试访问的 git 主机遵循此配置文件中的规则

You can achieve that using a ssh config file.

First create a file inside your ~/.ssh folder named config, you can use some command like the following

$ nano ~/.ssh/config

Then, the content of the file should have the location of your key based on each host name. for example:

Host github.com
 IdentityFile ~/myPublicKeyFolder/myGitHubFile
Host heroku.com
 IdentityFile ~/myPublicKeyFolder/myHerokuFile

So, when git tries to access each host it will follow the rules inside this config file based on the git host your trying to reach

‘画卷フ 2024-10-29 02:36:47

一种选择是使用 ssh-agent 并向 ssh-add 提供文件名。

例如:

$ ssh-agent /bin/bash
$ ssh-add ~/mykeys/id_rsa

One option is to use ssh-agent and provide a file name to ssh-add.

For example:

$ ssh-agent /bin/bash
$ ssh-add ~/mykeys/id_rsa
十年不长 2024-10-29 02:36:47

我会说将文件名放入~/.ssh/config,但您可能也无权访问该文件。

您可以为 ssh 提供私钥,以便与 -i keyfile 选项一起使用。

现在怎么说 git 将哪些选项传递给 ssh?

GitTips 页面 表示创建一个包装器脚本并指向它使用 GIT_SSH 环境变量。

看起来你也可以使用git配置core.gitProxy,但我没有找到一个很好的例子一些邮件列表消息表明它仅适用于 git: 协议。

I would have said put the file name in ~/.ssh/config, but you likely would not have access to this file, too.

You can give ssh the private key to use with the -i keyfile option.

Now how to say git which options to pass to ssh?

The GitTips page says create a wrapper script and point to it with the GIT_SSH environment variable.

It looks like you also can use the git configuration core.gitProxy, but I did not find a good example and some mailing list message suggests it is only for the git: protocol.

蓝咒 2024-10-29 02:36:47

使用 ssh 代理

ssh-agent bash -c 'ssh-add /home/me/my_private_key; git clone [email protected]:uname/test-git-repo.git'

Use ssh-agent

ssh-agent bash -c 'ssh-add /home/me/my_private_key; git clone [email protected]:uname/test-git-repo.git'
行至春深 2024-10-29 02:36:47

对于我正在开发的应用程序的项目,需要生成一个 shell 脚本,其中包含所有 git 命令来初始化/提交/推送到外部存储库。 ~/.ssh/config 是禁止的,所以我的公钥/私钥在我的应用程序目录中。我使用了 vhallac 的答案。这是我必须在 shell 脚本中执行的操作才能使用我的密钥:

eval `/usr/bin/ssh-agent`
ssh-add /path/to/.ssh/id_rsa

希望这对某人有帮助

For a project I am working on my app needs to spit out a shell script with all of the git commands to init/commit/push to an external repository. The ~/.ssh/config is off limits so I have my public/private keys in my app directory. I used vhallac's answer. This is what I had to do in my shell script to use my key:

eval `/usr/bin/ssh-agent`
ssh-add /path/to/.ssh/id_rsa

hope this helps someone

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文