V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
EyebrowsWhite
V2EX  ›  SSH

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

  •  
  •   EyebrowsWhite · 2022-08-12 23:09:11 +08:00 · 963 次点击
    这是一个创建于 858 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    5 条回复    2022-12-28 13:43:14 +08:00
    yzwduck
        1
    yzwduck  
       2022-08-12 23:14:20 +08:00   ❤️ 1
    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
        2
    wonderfulcxm  
       2022-08-12 23:17:55 +08:00 via iPhone
    楼上正解
    EyebrowsWhite
        3
    EyebrowsWhite  
    OP
       2022-08-12 23:33:39 +08:00
    @yzwduck 感谢,试了下可以的。不过就是要把我现在本地的 git config 里面的 remote url 全改成 ssh://git@gitlab/repopath.git 这种,还得改一波 gitlab 配置,感觉有点不太划算 :-D 。但是似乎也没有更好的方式了
    EyebrowsWhite
        4
    EyebrowsWhite  
    OP
       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
        5
    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
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5917 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 59ms · UTC 02:24 · PVG 10:24 · LAX 18:24 · JFK 21:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.