今天,我必须远程连接到家里的 Debian 计算机来解决 VPN 服务器的问题。
我使用带有 SSH 客户端的 iPhone 来解决这个问题,但由于屏幕尺寸小和虚拟键盘,我遇到了困难。手边有一台公共(Windows)计算机,我想我可以用它连接到我的计算机。本来就很棒,但我怀疑计算机有键盘记录器,所以我的 root 密码可能被“记录”。另外,作为一台 Windows 计算机,该计算机没有安装任何 SSH 客户端,因此我必须使用在线 SSH 客户端(它也可以记录我的键盘敲击)。
这是我的问题:
我将如何保护我的 Debian 计算机,以便下次需要从公共计算机进行 ssh 连接时不必太担心?
答案1
为什么你不让你的 Debian 计算机只需要公钥和私钥而不需要密码呢?您可以更改 sshd_config 文件中的该设置。但在此之前,您只需生成密钥并使用 ssh-copy-keys 将它们安装在您的服务器上。经过此过程后,没有人甚至无法尝试猜测用户和密码,因为访问它的唯一方法是拥有密钥,如果您希望它更安全,则需要在创建密钥时提供密码。当我很懒并且不想每次登录服务器时都输入密码时,我也会这样做。
答案2
公共连接的最大问题是密码。我不在乎是否有人知道我的用户名/我做了什么。但重要的是,他们如何重新使用我的密码。
我建议通过两步身份验证来保护 SSH 访问。我发现该链接解释了如何为 SSH 登录启用 Google Authenticator:https://www.digitalocean.com/community/tutorials/how-to-protect-ssh-with-two-factor-authentication
对于那些不知道的人,这里有一个维基百科其作用的描述:
通常,用户会在智能手机上安装身份验证器应用程序。要登录使用双因素身份验证的站点或服务,他们向该站点提供用户名和密码,并运行身份验证器应用程序,该应用程序会生成一个额外的六位一次性密码。用户将其提供给站点,站点检查其正确性并对用户进行身份验证。
- 首先,
libpam-google-authenticator
从您最喜欢的包管理器安装。源代码在这里 auth required pam_google_authenticator.so
通过添加到配置页面来启用两步身份验证/etc/pam.d/sshd
。- 确保在您的文件中
ChallengeResponseAuthentication
设置为。yes
/etc/ssh/sshd_config
- 以您想要进行两步身份验证的用户身份登录,运行
google-authenticator
并按照步骤操作。为了方便起见,它甚至会在您的终端中打印出漂亮的二维码 - 重新启动你的 SSH 服务器并尝试一下!
这样,您就可以在sudoers
群组中创建一个仅具有 Google Authenticator 密码身份验证的帐户。没有静态密码,可靠,并且仍然是 root 访问权限。
但该解决方案假设键盘记录器是公共计算机必须提供的唯一威胁。