[请教]是否能够不分发私钥,实现多人共享 ssh 验证? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
fox0001
V2EX    Linux

[请教]是否能够不分发私钥,实现多人共享 ssh 验证?

  •  
  •   fox0001 2022-09-02 08:17:59 +08:00 via Android 4957 次点击
    这是一个创建于 1205 天前的主题,其中的信息可能已经有所发展或是发生改变。

    外网有台 Linux 服务器,已配置好密钥登录 ssh 。

    需要办公室内的同事可以 ssh 进去维护服务器。简单粗暴的做法,把密钥复制到各个机器。或者服务器上的登录用户配置多个密钥。

    疑问是,能否不复制私钥,实现各个同事可以在办公室内网,通过 ssh 登录服务器?

    第 1 条附言    2022-09-02 12:44:50 +08:00
    可以结贴了。jumpserver 、next-terminal 的方案,满足需求。

    @dingyaguang117
    @proxychains
    @yyf1234
    @lazyyz
    @jfj8848
    @Tink
    感谢推荐。
    34 条回复    2022-09-05 09:19:36 +08:00
    ruidoBlanco
        1
    ruidoBlanco  
       2022-09-02 08:21:44 +08:00
    host based authentication ,认机不认人。
    toaruScar
        2
    toaruScar  
       2022-09-02 08:25:21 +08:00   1
    可以用证书验证。
    生成一个 CA ,让服务器信任。让后用这个 CA 来签同事的公钥,同时写入 principal 。这样在服务器上设置一次某个用户允许哪些 principals 登录就行了。
    PlG5sBkXD1ziLeGB
        3
    PlG5sBkXD1ziLeGB  
       2022-09-02 08:33:05 +08:00 via iPhone   1
    堡垒机
    NessajCN
        4
    NessajCN  
       2022-09-02 08:33:53 +08:00
    那你就开密码登录呗...
    fox0001
        5
    fox0001  
    OP
       2022-09-02 08:36:03 +08:00 via Android
    @NessajCN #4 就是不想分发验证信息,包括密钥、密码之类
    villivateur
        6
    villivateur  
       2022-09-02 08:41:04 +08:00   5
    那你就把每个同事电脑的公钥都放在这台服务器上呗
    bruce0
        7
    bruce0  
       2022-09-02 08:50:35 +08:00
    蹲一个靠谱的方案, 我们也有你这样的需求, 有多台机器(比如 20 太机器), 都要做权限管理就很麻烦. 之前查过资料, 有推荐 VPN 的, 要连的机器, 只能通过特定的 ip 连接, 假设为机器 A, 目标机只能通过 A 连接, A 同时只能通过 VPN 连接上去,然后可以通过 VPN 控制权限. 还一种方案就是跳板机, 假设为机器 B, 只能通过 B 连接目标机, 不同人拥有 B 的访问权限, 控制 B 的访问权限, 就可以控制所有机器的
    dingyaguang117
        8
    dingyaguang117  
       2022-09-02 08:55:50 +08:00 via iPhone
    有一些开源的跳板机系统,权限管理带 webui 的
    ZE3kr
        9
    ZE3kr  
       2022-09-02 08:57:41 +08:00 via iPhone
    做个 WebSSH ,之前用 Cloudflare Teams 就可以做到这个,支持 SSO 登陆进入 SSH 页面
    fox0001
        10
    fox0001  
    OP
       2022-09-02 08:59:44 +08:00 via Android
    @dingyaguang117 #8 我也有类似的想法。比如局域网内部署一个 cPanel 、宝塔之类的系统,只能局域网内访问,里面配置好 ssh 私钥。打开那系统就能 ssh 到 Linux 服务器上。但是不知道用哪个…
    huangmingyou
        11
    huangmingyou  
       2022-09-02 09:02:32 +08:00   1
    开源的 jumpserver 不错,可以实现
    apake
        12
    apake  
       2022-09-02 09:19:02 +08:00 via Android
    1 跳板机,所有人登入跳板机,再登录服务器。2 服务器启动 jupyter ,浏览器就可以登录终端了
    dingyaguang117
        13
    dingyaguang117  
       2022-09-02 09:19:18 +08:00 via iPhone   1
    @fox0001 jumpserver 就挺好
    dddd1919
        14
    dddd1919  
       2022-09-02 09:19:43 +08:00   2
    关键字 authorized_keys
    ytmsdy
        15
    ytmsdy  
       2022-09-02 09:22:51 +08:00   1
    把需要登录服务器的同事的公钥收集一下,然后都放到服务器上不就完了么。
    byte10
        16
    byte10  
       2022-09-02 09:24:51 +08:00
    (⊙o⊙)。xshell 的毒,预留了一个私钥的登录给你们,导致你们不知道可以使用公钥免密登录?关键字 authorized_keys
    proxychains
        17
    proxychains  
       2022-09-02 09:26:11 +08:00   1
    jumpserver 堡垒机
    lazyyz
        18
    lazyyz  
       2022-09-02 09:29:46 +08:00 via Android   1
    轻量的推荐 next-terminal ,我自己在用,挺方便的
    microxiaoxiao
        19
    microxiaoxiao  
       2022-09-02 09:40:12 +08:00 via Android
    搞个免密码登录到远程服务器的 linux 内网跳板机,然后在内网跳板机上面用 iptables 开白名单。迁移也简单
    microxiaoxiao
        20
    microxiaoxiao  
       2022-09-02 09:43:09 +08:00 via Android
    哦,对了。同事的终端可以选择 mobaxterm ,变个启动脚本,这样登录跳板机自动 ssh 到远程服务器。
    Tink
        21
    Tink  
    PRO
       2022-09-02 09:53:21 +08:00   1
    堡垒机
    jfj8848
        22
    jfj8848  
       2022-09-02 09:54:22 +08:00   1
    跳板机 堡垒机
    robinfai9
        23
    robinfai9  
       2022-09-02 10:07:00 +08:00
    teleport ?
    nothingistrue
        24
    nothingistrue  
       2022-09-02 10:17:43 +08:00
    没有私钥不行,因为根据私钥可以设置 pin 码这情况看,客户端每次登录都是要拿私钥重新生成签名的。

    但是有一个方向楼主搞错了,SSH 无密码登录,不是服务器生成密钥对再分发的方向,而是客户端自行生成密钥对后把公钥报给服务器。这个方向是客户端主服务端从,不是服务器端主客户端从。当要在不吊销用户的情况下单独吊销登录凭证的时候,服务器唯一能做的就是 authorized_keys 中移除对应的公钥。所以这里建议要么一用户一人,要么一密钥对一人,不能共享的。
    dacapoday
        25
    dacapoday  
       2022-09-02 10:21:46 +08:00
    tailscale magic ssh
    subpo
        26
    subpo  
       2022-09-02 10:23:06 +08:00   3
    虽然但是 啥时候 ssh 登录需要复制私钥了?
    是我没看懂问题,还是现在 v2 水平这么奇怪了
    sampeng
        27
    sampeng  
       2022-09-0210:27:37 +08:00
    ssh 还能这么用?你这不就是要一个堡垒机??
    机器不多,你应该是找每个人要自己的公钥啊。。。。是我年纪太大理解错了?
    wooyuntest
        28
    wooyuntest  
       2022-09-02 10:29:13 +08:00
    建议堡垒机,还得配合其他的措施才能尽量控制违规登录。
    比如用户通过堡垒机登录成功以后 自己在 authorized_keys 加一个公钥怎么办?
    用户通过堡垒机登录成功以后 自己用 nc socat 等等工具反弹一个 shell 到自己的服务器上 怎么办?
    有好多维度都是需要考虑的。
    11232as
        29
    11232as  
       2022-09-02 10:41:18 +08:00
    为啥要分发私钥...
    Xusually
        30
    Xusually  
       2022-09-02 10:47:19 +08:00
    为什么要复制私钥?

    在服务器上启用公钥验证登录,把要登陆的用户的公钥都加入到 authorized_keys 里就行了啊。

    私钥怎么会需要分发?
    stoluoyu
        31
    stoluoyu  
       2022-09-02 11:31:26 +08:00
    有什么原因导致你不能把你同事的公钥放到服务器的 authorized keys 呢。
    lakehylia
        32
    lakehylia  
       2022-09-02 11:49:19 +08:00
    一人一把钥匙啊,你自己生成一堆钥匙,公钥放服务器,一个私钥给一个人。如果要剔除某个人,就把某个人的私钥对应的公钥从服务器移除啊。
    fox0001
        33
    fox0001  
    OP
       2022-09-02 12:47:09 +08:00 via Android   1
    @stoluoyu #31
    1 )生产机

    2 )安全意识淡薄。例如:丢了办公室钥匙可以不报告,自己去配一个

    3 )上面要求
    julyclyde
        34
    julyclyde  
       2022-09-05 09:19:36 +08:00
    forward agent
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2459 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 01:21 PVG 09:21 LAX 17:21 JFK 20:21
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86