Repository navigation
JShell v0.1.0-beta.3
Pre-release
Pre-release
·
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 中重新连接,新密钥会作为新记录写入。