跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 我需要连接到一个对外端口总是在变换的 sshd 服务,虽然公钥没变,但是 ssh 客户端老是询问我是不是要加入到 known_hosts ,该如何解决?
未分類
26 11 月 2020

我需要连接到一个对外端口总是在变换的 sshd 服务,虽然公钥没变,但是 ssh 客户端老是询问我是不是要加入到 known_hosts ,该如何解决?

我需要连接到一个对外端口总是在变换的 sshd 服务,虽然公钥没变,但是 ssh 客户端老是询问我是不是要加入到 known_hosts ,该如何解决?

資深大佬 : CEBBCAT 2

sshd 服务是使用 frp 随机映射到一台服务器上的,也就是说端口号时不时会有变化。

我在网络上查到可以通过 StrictHostKeyChecking=no 的方式关闭某次或者所有连接的公钥验证,但我又不想不验证公钥,因为 frp 服务器是公共服务

我又查到可以通过 ssh-keyscan 来扫描公钥提前全部添加到 known_hosts,但看起来不太符合我这个 case

大佬有話說 (3)

  • 資深大佬 : Xusually

    然而这很矛盾啊。
    你如果不想要提示加入到 known_hosts,你本地不存,那么下次再链接的验证和比对就无从谈起啊。
    你本地存了,下次换了,你也机械性的添加到本地,或者替换到本地,那么验证的过程呢?不也是没有什么安全可言?
    sshd 可以有多种方式忽略 known_hosts,但是你也提到了还是想验证。
    验证的话,光处理这个 known_hosts 提醒只是表象吧,还是得确认对方的 key 才对,所以问题不出在这个提醒,是怎么在对方变了 key 之后确认 key 是不是真的主机。
    我理解的应该没错吧?

  • 主 資深大佬 : CEBBCAT

    @Xusually #1 谢谢回复。我现在我把公钥指纹存在 DNS 的 TXT 记录里了,所以本质上是可以验证的,这也是我现在的验证方式,ssh 提示我的时候,我就从 DNS 里查一下公钥指纹,看看和提示的是否一样。

    我觉得有这么几种合乎逻辑的实现方式:
    – 我在连接的时候提供公钥指纹参数,如果验证一致那么就直接连接,添加不添加到 known_hosts 无所谓
    – known_hosts 对指定机器不验证端口,只验证公钥。或者说,假定指定机器所有端口都使用同一公钥

    第二种方法我还没查过,我现在查查 known_hosts 的语法去

  • 資深大佬 : Edward0Chan

    @Xusually 他说的公钥没变,所以不矛盾
    关键点在于端口变了会判定为新的服务吧,所以又要另存 相当于一个服务器存了很多个一样的公钥

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具