如何在非标准端口上为 git 设置 .ssh/config

如何在非标准端口上为 git 设置 .ssh/config

我知道类似的问题已经被问过多次了,但我无法找到适合我的情况的解决方案。

我有一个自定义的 git 存储库,可通过非标准端口上的 ssh 访问;URL 类似于:

git clone ssh://[email protected]:12345/path/to/repo/project.git

该 repo 的私钥位于~/.ssh/myname.prv

我试图不使用密码来访问 repo,但是失败了。

我的当前~/.ssh/config有一个节:

Host git
    HostName my.repo.host
    Port 12345
    User myname
    IdentityFile ~/.ssh/myname.prv

...但是 git 仍然要求输入 PW。

我错过了什么?

注意:如果重要的话,服务器和客户端都是相当新的 Linux 机器,并且我在命令行上工作。

答案1

我认为您误解了该文件的用途~/.ssh/config。您有:

Host git
    HostName my.repo.host
    ...

但是,第一行定义了要连接的主机的Host git名称(别名)(即),以及您在命令行中指定为或 的名称。也就是说,您现在可以通过以下方式连接到您的 git 远程服务器gitsshgitssh

ssh git

...你可以使用你的“自定义”主机名克隆 git repo:

git clone ssh://git/path/to/repo/project.git

请注意,您的遥控器现在将列出origin该地址,这取决于您的ssh配置文件。

或者,如果您希望保留my.repo.hostgit 远程地址,请将您的~/.ssh/config内容更改为:

Host my.repo.host
    #HostName my.repo.host
    Port 12345
    User myname
    IdentityFile ~/.ssh/myname.prv

(注意:HostName在这种情况下该指令是多余的,因此我将其注释掉。)

这样,您可以使用以下方法简化远程和克隆:

git clone ssh://my.repo.host/path/to/repo/project.git

相关内容