我的 .ssh/config 正确吗?

我的 .ssh/config 正确吗?

我正在尝试通过 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

根据澄清,我首先指出这里可能涉及三个不同的用户名:

  1. 的用户名example.com,比如说user1
  2. 在 Gitlab 上注册的用户名,可能与上面的用户名相同,也可能不同,比如说user2。例如,这是你为其添加公钥的 Gitlab 帐户。
  3. 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 配置中存在其他冲突的设置,否则可以省略。

相关内容