这个问题以不同的形式被问了数百次,答案总是相似的——我在一般情况下同意他们的观点,但仍然想再问一次,因为我的情况有点不同。
我的工作流程涉及通过 SSH 与我工作的公司制造的各种设备进行交互,我希望我的 SSH 客户端能够:
- 成功登录后记住主机的密码
- 如果主机标识发生更改,不需要我手动删除已知主机文件中的条目。
这些设备始终位于隔离的本地网络中,无法访问互联网。我无法使用基于密钥的身份验证,因为这些设备没有持久存储(密钥在重新启动后将无法保存)。我还想使用同一台 PC 访问不同设置中的硬件 - IP 和密码相同,但主机 ID 不同。
常规的 OpenSSH 客户端在这种情况下会很痛苦 - 虽然我知道这是因为安全问题,但我想自愿选择退出。
如果不分叉 OpenSSH 并亲自进行这些更改,这是否可能?
答案1
您可以通过编写一个脚本来实现此目的,该脚本首先删除相关条目known_hosts
,然后使用 ssh 运行,expect
如用于登录 ssh 服务器的 Shell 脚本
答案2
1) 密码:您可以更改该设备的启动映像并在其中永久写入密钥,因此您无需输入密码。看看是否可能...不确定您使用哪些设备。
2)将以下代码放入~/.ssh/config
Host *
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
这会让你做好准备。