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

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

你可以这样做:

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远程删除短名称(是删除远程)

3.Git remote -v(查看当前远程列表)

4.Git推送远程分支

5.git远程重命名A B(重命名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的例子。局域网)。

创建SSH密钥对(安静,没有密码)

$ ssh-keygen -q -N '' -b 4096 -f ~/.ssh/mykeyfile

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

显示公钥的内容,并将其复制/粘贴到git-server中的配置文件的SSH密钥(类似于在Github上的操作方式)

$ cat ~/.ssh/mykeyfile.pub

在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上的实际用户名是什么)

使用公钥测试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)

为本地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上,我的实际用户是alex,存储库是myproject)

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

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


更新:正如评论中正确指出的那样-您不一定需要在remote-url中指定端口2022,因为它已经在~/中配置了。ssh/config文件为PORT 2022。


看看如何设置你的~/。Ssh /config文件正确。

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

来解决你的问题

Host github.com 
Port 22 
Host * 
Port 1234

看一下ssh_config手册页,它解释了前几页需要了解的所有内容。