跳转到内容
moshpit

密钥,以及怎么确认对面是哪台机器

在 设置 → SSH Keys 里可以直接在手机上生成密钥,也可以导入已有的。生成过程完全在本机完成,不会上传到任何地方,因为 Moshpit 没有服务器可以接收它。

设置里的 SSH Keys 页面,还没有任何密钥:THIS DEVICE · SECURE ENCLAVE 一栏显示 “No device key yet — generate one with +”,IMPORTED 一栏显示 “No imported keys”

要用生成的密钥登录,把公钥复制出来,追加到主机的 ~/.ssh/authorized_keys。和别的密钥用法一样。

  • 私钥和密码存在 iOS 钥匙串里。设备有 Secure Enclave 的话,由它保护。
  • Face ID:可以要求每次取用密钥前先验证。导入或生成时打开这个选项。
  • 连接信息(主机、端口、用户名)是普通的 App 数据,没有同步。换新手机要重新添加主机,这是不设账号的代价。

反过来:对面真是你的服务器吗

Section titled “反过来:对面真是你的服务器吗”

第一次连接一台主机,Moshpit 会弹出 New Host 面板,显示这台主机的密钥指纹,以及一条在服务器上核对指纹的命令:

在那台机器上跑一遍(用一个你本来就信得过的终端),把两边的指纹对一下。对得上,说明连的确实是你要连的那台。中间人攻击只能在这一步拦住,也只有这一步能拦。点了 Trust 之后,这个密钥就和这台主机绑定了。

主机后来给出了不同的密钥,Moshpit 会停下来告诉你,而不是照常连接。多数时候是服务器重装过,指纹确实换了。偶尔是真出了问题。先从别的渠道核实,再决定接受。要是 App 默默接受了变化的主机密钥,前面那一步核对就白做了。

密码登录可以用,也和密钥一样存在钥匙串里。但它是更弱的选项。能用密钥就用密钥。非要用密码,就别把 SSH 直接暴露在公网上,见从任何地方连上你的机器。