我正在尝试通过 ssh 从不同的 ip 连接到 ubuntu 16.04 本地开发服务器,该服务器有 gitlab 并且有一个公共主机名。。example.com/2222
我的 gitlab ssh 端口是9409
我的.ssh/config
Host server
ProxyCommand ssh -W example.com:2222 username@server
IdentityFile ~/.ssh/id_rsa
现在克隆
git clone ssh://server:9409/username/test.git
它说
Cloning into 'test'...
Bad owner or permissions on /.ssh/config
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
在我的案例中还需要吗-W
?我仍然不知道ssh -W
编辑:
我chmod 600
现在明白了ssh_exchange_identification: Connection closed by remote host
我仍然认为我的配置文件有问题
答案1
根据澄清,我首先指出这里可能涉及三个不同的用户名:
- 的用户名
example.com
,比如说user1
。 - 在 Gitlab 上注册的用户名,可能与上面的用户名相同,也可能不同,比如说
user2
。例如,这是你为其添加公钥的 Gitlab 帐户。 - Gitlab 的 SSH 访问用户名,很可能是
git
,但几乎肯定不是在 Gitlab 内部注册的用户名。这取决于 Gitlab 的配置。
鉴于此,我认为你的 ssh 配置应该是这样的:
Host zoltan
Port 9049
ProxyCommand ssh -W %h:%p -p 2222 [email protected]
对于克隆,您应该执行以下操作:
git clone git@zoltan:user2/project.git
无论如何,您指定的设置IdentityFile
都会默认使用,因此除非您的 SSH 配置中存在其他冲突的设置,否则可以省略。