git远程添加其他SSH端口

在Git中,当我的主机使用不同的SSH端口时,如何添加远程源服务器?

git remote add origin ssh://user@host/srv/git/example
376029 次浏览

你可以这样做:

git remote add origin ssh://user@host:1234/srv/git/example

1234是使用的ssh端口

您需要编辑~/。ssh / config文件。添加如下内容:

Host example.com
Port 1234

一个快速的谷歌搜索显示了一个 不同的资源,它比我解释得更详细。

对于那些编辑./.git/config

[remote "external"]
url = ssh://evanc@www.foo.com:11720/aaa/bbb/ccc
fetch = +refs/heads/*:refs/remotes/external/*

最好的答案对我没用。我需要ssh://从乞求。

# does not work
git remote set-url origin user@example.com:10000/aaa/bbbb/ccc.git
# work
git remote set-url origin ssh://user@example.com:10000/aaa/bbbb/ccc.git

你可以继续使用传统的URL形式通过SSH访问git,而不是使用ssh://协议前缀,只做了一个小更改。提醒一下,传统的URL是:

git@host:path/to/repo.git

要指定一个替代端口,在user@host部分周围加上括号,包括端口:

[git@host:port]:path/to/repo.git

但是如果端口更改只是暂时的,你可以告诉git使用不同的SSH命令,而不是更改存储库的远程URL:

export GIT_SSH_COMMAND='ssh -p port'
git clone git@host:path/to/repo.git # for instance

1.git远程添加 ${shortname} ${url}

2.git远程删除 shortname(删除远程)

3.git远程- v(是查看当前远程列表)

4.git 远程分支

5.git远程重命名 AB(重命名A到B)

6.git远程显示 shortname(显示远程信息)

这一切都对我有用。

以gitlab为例,SSH端口为2224,则:

Git远程添加ssh://git@192.168.1.100:2224/your_group/your_project.git

在尝试连接到我的git服务器时遇到了类似的问题

(在docker容器中有一个gitea服务器,ssh-port配置为2022,而不是标准的22,这里以my-git-server.lan为例)。

  1. 创建SSH密钥对(安静,没有密码)
$ ssh-keygen -q -N '' -b 4096 -f ~/.ssh/mykeyfile

(这将创建两个文件:公钥mykeyfile.pub和私钥mykeyfile,没有任何扩展名)

  1. 显示公钥的内容,并将其复制/粘贴到git-server中的配置文件的SSH密钥(类似于你在Github上所做的)
$ cat ~/.ssh/mykeyfile.pub
  1. 在ssh-config中添加以下行以指定git-server的主机名、端口和密钥文件
$ nano ~/.ssh/config
Host my-git-server.lan
HostName my-git-server.lan
User git
Port 2022
IdentityFile ~/.ssh/mykeyfile

(注意用户名是总是 git,不管你在git-server上的实际用户名是什么)

  1. 使用公钥测试SSH连接到git-server, ..并收到成功的消息
$ ssh -T git@my-git-server.lan
Hi there, username! You've successfully authenticated with the key named /Users/username/.ssh/mykeyfile.pub

.. 使用- v“verbose模式”;分析任何错误:

$ ssh -Tvvv git@my-git-server.lan

(再次注意,用户名是总是 git)

  1. 为本地git存储库指定远程地址ssh://git@my-git-server.lan:2022/alex/myproject.git(同样,注意用户git和端口2022), ..检查远程配置
$ cd your/local/git/repository/folder
$ git remote add my-git-server ssh://git@my-git-server.lan:2022/alex/myproject.git
$ git remote -v

(这里你也可以看到在我的git-server上,我的实际用户是亚历克斯,存储库是myproject)

完成了!您现在可以使用git-server ..获取/提交/推动等等。

(这是我在serverfault.com上的帖子的副本)


更新:正如注释中正确指出的那样——你不一定需要在remote-url中指定端口2022,因为它已经在~/.ssh/config文件中配置为PORT 2022

看看如何正确地设置你的~ / . ssh / config文件。

您可以轻松地为不同的主机指定不同的设置。

来解决你的问题

Host github.com
Port 22
Host *
Port 1234

看看ssh_config手册页,它解释了前几页你需要知道的一切。