V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
rebeccaMyKid
V2EX  ›  问与答

ssh 中间人攻击,假如第一次连接就被中间人攻击了怎么办?

  •  
  •   rebeccaMyKid · 2019-06-26 10:47:26 +08:00 · 2616 次点击
    这是一个创建于 2009 天前的主题,其中的信息可能已经有所发展或是发生改变。

    假设:

    在某云买了个 VPS,第一次 ssh login 就是中间人攻击,你信任了这个 fingerprint,那不就完了。

    最正确的姿势是怎样的?

    是先通过 https 那个叫什么 VNC 的东西,连接到 VPS,计算 public key fingerprint,然后本地首次连接的时候进行比对吗?

    我记得我看一个视频的时候,好像还有说什么 VPS 服务商有的时候会 email 你,你购买的服务器的 public key fingerprint,这个好像可行但我从来没收到过这种东西。

    12 条回复    2019-06-27 17:34:46 +08:00
    LxExExl
        1
    LxExExl  
       2019-06-26 10:56:08 +08:00
    普通上网要一路北上验证到根证书的吧?

    不太懂和 VPS 有什么关系 连接 VPS 不是直接连接 IP 地址吗
    0ZXYDDu796nVCFxq
        2
    0ZXYDDu796nVCFxq  
       2019-06-26 10:59:41 +08:00 via Android
    登录后马上运行 w 看下来源 IP
    0ZXYDDu796nVCFxq
        3
    0ZXYDDu796nVCFxq  
       2019-06-26 11:00:14 +08:00 via Android
    然后看收到的指纹和机器上的指纹
    0ZXYDDu796nVCFxq
        4
    0ZXYDDu796nVCFxq  
       2019-06-26 11:01:29 +08:00 via Android
    另外中间人是很难知道你是第一次连的,所以中间人暴露的可能性很大
    rebeccaMyKid
        5
    rebeccaMyKid  
    OP
       2019-06-26 11:28:26 +08:00
    @gstqc 那这么说还是得先去机器上把指纹记下来嘛
    lululau
        6
    lululau  
       2019-06-26 12:04:03 +08:00
    楼主自己回答正确;指纹不是要你确认的吗,那什么叫确认啊?怎么确认啊?
    0ZXYDDu796nVCFxq
        7
    0ZXYDDu796nVCFxq  
       2019-06-26 12:47:38 +08:00 via Android
    @rebeccaMyKid 所以建议用公私钥登录
    部署时直接部署公钥
    alphatoad
        8
    alphatoad  
       2019-06-26 13:31:03 +08:00 via iPhone
    你说的是对的
    ssh 不是中心化认证,所以默认第一次连接有效。这是一个 tradeoff
    wysnylc
        9
    wysnylc  
       2019-06-26 14:36:46 +08:00
    百度 https 中间人攻击
    原理是因为 https 使用非对称加密但是密钥(证书)交换时实际上是对称加密,是可以劫持的
    世界上没有绝对的安全,也没有银弹程序
    rebeccaMyKid
        10
    rebeccaMyKid  
    OP
       2019-06-26 15:54:57 +08:00
    @gstqc 这跟登录方式没关系吧。。你要搞公钥私钥登录也得先能登录到你确定是真的目的主机上。

    问了个前辈,说是一般不会被中间人,怕就 https 那个 VNC 上去算指纹先。
    lcdtyph
        11
    lcdtyph  
       2019-06-26 17:03:47 +08:00 via iPhone   ❤️ 1
    lz 说的对,正确的方法就是先从 vps 商家提供的网页控制台登陆,然后运行(注意最后的'-')

    ssh-keyscan host | ssh-keygen -lf -

    把所有指纹打印出来,再进行第一次 ssh 握手,比对指纹
    julyclyde
        12
    julyclyde  
       2019-06-27 17:34:46 +08:00
    第一次如果被中间人了,你就忍了吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5960 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 01:50 · PVG 09:50 · LAX 17:50 · JFK 20:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.