如何解决使用“ remember_host”是否存在任何安全风险!使用net-ssh红宝石gem获得HostKeyMismatch异常时?
我见过有人建议使用这样的代码块:
begin
Net::SSH::start
rescue Net::SSH::HostKeyError => e
e.remember_host!
retry
end
根据异常类型的建议,它是用于主机密钥不匹配的情况,据我所知,它将主机添加到已知主机中。
所以我的问题是,只要无法识别主机就无条件添加主机是否有风险?我认为需要识别主机才能避免中间人攻击或类似攻击,而立即添加任何无法识别的主机似乎是安全漏洞。
请记住,我是Ruby的新手,对SSH或安全性了解甚少,所以我希望您能得到简单的解释。这是我的第一个堆栈溢出问题,所以很抱歉如果我违反任何准则。我想以此作为对实际上使用该代码块的问题的评论,但是我没有足够的声誉。
我期待任何解释,并提前致谢。
解决方法
是的,您绝对正确!示例代码简单地绕过了错误。
如果您不担心哪个主机尝试连接,那可以,并且这并不意味着SSH本身并不安全。
有时,组织会添加单独的访问层以提高安全性,也许是对机器的VPN,然后对目标服务器执行SSH ...在这种情况下,您想在Net::SSH::HostKeyError
上失败>
但是,如果您对此并不担心,则可以对错误使用#remember_host!
来绕过引发的错误。
在另一个堆栈交换站点中查看此答案:https://security.stackexchange.com/a/154878
,这是一个很好的问题。
任何更改用户级别设置的库都存在某种形式的风险。相当多的软件都依赖于类似的功能,请记住,存储主机确实会影响其他应用程序,而不仅是存在此逻辑的应用程序。观点:存储此信息并不是很荒谬的危险,但是这是我想到的一个缺点。是攻击者可以使用连接主机的历史记录来了解用户经常访问的基础结构。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。