Skip to content

JShell v0.1.0-beta.3

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Aug 16:29
· 25 commits to main since this release

JShell v0.1.0-beta.3

本次更新

  • SSH 与 SFTP 首次连接真正未知的主机时,会自动将服务器公钥写入用户的 ~/.ssh/known_hosts,随后继续连接。
  • SSH 终端与 SFTP 同时握手时,共享串行化的检查与写入流程,同一目标只会生成一条记录。
  • 同一主机和端口存在不同旧密钥时,无论密钥算法是否相同,都会阻止连接并显示已保存与当前收到的 SHA-256 指纹。
  • 永久主机密钥错误不再触发 SFTP 无限退避重试;核验并修正记录后,可使用重新连接操作再次尝试。

安全规则

  • JShell 采用 accept-new 语义,只自动接受没有历史记录的新目标。
  • 不会自动覆盖、删除或追加与现有目标冲突的密钥。
  • @revoked、否定主机模式、@cert-authority 直接密钥、损坏文件和权限错误仍会失败关闭。
  • 不提供关闭主机密钥校验或忽略密钥变化的选项。

记录格式

  • 默认端口 22 使用 host。
  • 非默认端口使用 [host]:port,因此同一主机的不同端口互不影响。
  • 保存的内容仅包含服务器公钥,不包含用户名、密码、客户端私钥或会话配置。

升级与故障处理

首次连接不会弹出指纹确认窗口。建议在高安全环境中通过独立渠道核验服务器公布的指纹。

如果服务器已确认更换密钥,请先核验新指纹,再更新对应记录:

ssh-keygen -R example.com
ssh-keygen -R "[example.com]:2222"

完成后在 JShell 中重新连接,新密钥会作为新记录写入。