ssh - 如何强制 ssh 从命令行接受新的主机指纹?

标签 ssh arguments command-line-arguments sftp

我正在获取标准

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is

错误消息。然而,执行命令(我认为是 sftp,这并不重要)的系统(Appworx)是自动化的,我无法轻易接受新 key ,即使在与第三方供应商核实这是有效的更改之后也是如此。我可以添加一个新的 shell 脚本,我可以从同一系统(和用户)执行该脚本,但似乎没有命令或命令行参数告诉 ssh 接受 key 。我在手册页或 Google 上找不到任何内容。这当然可能吗?

最佳答案

这里的答案是糟糕的建议。您永远不应该在任何现实系统中关闭 StrictHostKeyChecking(例如,如果您只是在自己的本地家庭网络上玩游戏,这可能没问题,但对于其他任何情况都不要这样做)。

改为使用:

ssh-keygen -R hostname

或者如果不使用默认端口 22:

ssh-keygen -R '[hostname]:port'

这将强制更新 known_hosts 文件,以仅删除已更新其 key 的一台服务器的旧 key 。

然后当你使用:

ssh user@hostname

它会要求您确认指纹 - 就像任何其他"new"(即以前未见过的)服务器一样。

关于ssh - 如何强制 ssh 从命令行接受新的主机指纹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21383806/

相关文章:

ssh - 如何删除ssh中的FTP用户?

Java String[] args 缺少字符

r - rlang::fn_fmls() 可以嵌套吗?

c - C 中 main 的参数

javascript - 连接到远程 SSH 服务器(通过 Node.js/html5 控制台)

linux - Bash:根据用户输入在本地或远程计算机上运行函数中的所有命令

powershell - Powershell:将管道发送为命令的参数

bash - 如何在 Bash 脚本中传递带空格的命令行参数

git push 在 MacOS Sierra 10.12.5 中失败

python - argparse - 每个操作不同的强制/可用参数