如何配置~/.ssh/config 使得同一主机不同端口可以使用不同的策略登录

2022-08-12 23:09:11 +08:00
 EyebrowsWhite

使用场景是这样的,我在内网的 NAS 上部署了多个服务,它们的主机名是相同的,但是端口不同,比如 122 端口是群晖本身,需求用户名密码登录,222 端口是 gitlab ,需求配置 ssh key 。

ssh 命令行的优先级高于配置文件,所以目前在我配置 gitlab 的私钥文件之后,可以通过命令行指定 -o PreferredAuthentications=password -p 122 来登录,但是我想要在配置文件中指定不同端口采用不同的策略,或者可能是不同端口使用不同的私钥文件登录。

搜了一大圈没有找到有类似解决方案,manual 里也没发现,各位大佬有没有懂怎么操作的。

952 次点击
所在节点    SSH
5 条回复
yzwduck
2022-08-12 23:14:20 +08:00
Host synology
HostName server.local
Port 122

Host gitlab
HostName server.local
Port 222
IdentityFile /path/to/ssh.key

按上面配置 ssh_config 后,使用 ssh synology 或者 ssh gitlab 来连接不同服务。
wonderfulcxm
2022-08-12 23:17:55 +08:00
楼上正解
EyebrowsWhite
2022-08-12 23:33:39 +08:00
@yzwduck 感谢,试了下可以的。不过就是要把我现在本地的 git config 里面的 remote url 全改成 ssh://git@gitlab/repopath.git 这种,还得改一波 gitlab 配置,感觉有点不太划算 :-D 。但是似乎也没有更好的方式了
EyebrowsWhite
2022-08-12 23:37:36 +08:00
@yzwduck 刚发现我配置成这样的话,那就完美没问题了 ^o^

Host synology
HostName server.local
Port 122

Host server.local
HostName server.local
Port 222
IdentityFile /path/to/ssh.key
xyjincan
2022-12-28 13:43:14 +08:00
修改 hosts ,dns ,让一个机器拥有很多个名字

nas.xxx.local 192.168.1.100
gitlab.xxx.local 192.168.1.100

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/872538

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX