繁体   English   中英

git remote add 与其他 SSH 端口

[英]git remote add with other SSH port

在 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

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

最佳答案对我不起作用。 我从一开始就需要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

无需使用ssh://协议前缀,您可以继续使用传统的 URL 形式通过 SSH 访问 git,只需稍作改动。 提醒一下,传统的 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

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

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

对于 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-server 上的实际用户名如何,用户名始终git

  1. 使用公钥测试与您的 git-server 的 ssh 连接,.. 并收到成功消息
$ 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 mode" 分析任何错误:

$ 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 上,我的实际用户是alex而存储库是myproject

完毕! 您现在可以使用您的 git-server .. fetch/commit/push 等。

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


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

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

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

为了解决您的问题,您将设置

Host github.com 
Port 22 
Host * 
Port 1234

查看ssh_config手册页,它在前几页中解释了您需要了解的所有内容。

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

2.git remote remove shortname(是删除一个遥控器)

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

4.git推送远程分支

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

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

这一切都对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM