你可以这样做:
git remote add origin ssh://user@host:1234/srv/git/example
1234
是正在使用的 ssh 端口
您需要编辑 ~/.ssh/config 文件。添加如下内容:
Host example.com
Port 1234
快速 google 搜索显示 few different 资源比我更详细地解释它。
PasswordAuthentication no
。
最佳答案对我不起作用。我从一开始就需要 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,只需稍作改动。提醒一下,the conventional URL is:
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 remote add
将其添加为远程时,我必须将 URL 用双引号括起来才能使此语法正常工作。像这样:git remote add gitea "[git@host:port]:path/to/repo.git"
对于那些编辑 ./.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
为例)。
创建 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 服务器上的实际用户名如何,用户名都是 always git
)
使用公钥测试与您的 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
(再次注意,用户名是always 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 .. fetch/commit/push 等。
(这是我在 serverfault.com 上的帖子的副本)
更新:正如评论中正确指出的那样 - 您不一定需要在远程 URL 中指定端口 2022,因为它已经在 ~/.ssh/config
文件中配置为 { 2}。
~/.ssh/config
中创建主机,它就会自动使用那里指定的端口
看看如何正确设置你的 ~/.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(显示远程信息)
这一切都对我有用。
不定期副业成功案例分享
git remote add origin user@host:1234/srv/git/example