从半不受信任的机器访问 ssh 服务器的最佳实践/安全方法

从半不受信任的机器访问 ssh 服务器的最佳实践/安全方法

我在国外时经常需要在客户的机器上访问我家里的 ssh 服务器。目前我的 ssh 服务器设置为在非标准端口上使用密码验证。这很方便,因为我只需下载 putty/pscp,做我需要做的事情就可以了。但我担心安全风险。

我考虑过只允许使用密码进行公钥/私钥身份验证。但如果可以避免的话,我真的不想将我的私钥复制到远程机器上。

有没有更好的方法?更安全但又相当方便的方法。

我曾考虑过设置两个 ssh 服务器,一个暴露在互联网上,另一个只暴露在 LAN 上。公共服务器允许密码验证,但除此之外将被锁定,只允许 ssh 访问内部服务器(通过强制命令或其他方式)。内部服务器只允许通过使用密码短语的 pub/pri 密钥验证进行 ssh 访问。理论上应该可以,但我想知道是否有更简单的方法。

答案1

如果你愿意花一些钱,你可以买一个 yubikey,然后使用Yubico PAM 模块。您可以使用它来设置双重身份验证。要登录,您需要 Yubikey 和密码。

答案2

检查opie 服务器一次性密码机制。
以下是一个简短的介绍

答案3

获取一个 USB 拇指驱动器。将您的公钥复制到那里。只要您在那里,您也可以将 PuTTY、pscp 和 pageant 复制到那里,这样您就不必多次下载。

答案4

就像 Zoredache 提到的那样,尤比克效果非常好。它是一款便宜但坚固的设备,您通常会将其放在钥匙链上。它模拟 USB 键盘并在您触摸它时生成一次性密码。服务器上的 PAM 模块会验证此密码。

我已将 PAM 配置为允许两种身份验证方法,因为我希望在受信任的计算机上或使用 SSH 代理转发时仍然可以轻松访问:

  1. 始终允许公钥认证。
  2. 如果您通过密码进行身份验证,则需要 Yubikey OTP。

对于选项 2,只需在按 Enter 之前将 Yubikey 一次性密码附加到常规密码中即可。我在 SSH 登录前显示的横幅中放置了有关此内容的提醒,因为我很可能会忘记如何输入 Yubikey 令牌。

相关内容