在旅途中从酒店使用 SSH 连接到服务器真的安全吗?
服务器:
- CentOS 7
- 仅通过 RSA 密钥授权 - 密码验证被拒绝
- 非标准端口
工作站:
- Ubuntu 14
- 用户密码
- 使用 RSA 密钥的密码(标准方法)
也许保留一半的 USB 记忆棒上的私有 RSA 密钥,并在连接之前自动(通过脚本)将这一半添加到 ~/.ssh/private_key 中?
互联网可以通过酒店的 WIFI 或租来的公寓里的有线电视来连接。
更新型多巴胺
抱歉,一开始说得不清楚。我指的是两个方面的安全:
- 仅通过不受信任的网络进行 SSH 连接的安全性。
- 拥有 SSH 连接所需密钥的计算机的安全性 - 如果被盗,如何保护服务器......
答案1
因此,关于通过明确不受信任的连接建立 ssh 连接。
假设您已经拥有来自上一次连接的 ~/.ssh/known_hosts 条目,那么您应该能够连接而不必担心网络是否安全。如果您有其他验证 ssh 主机密钥的方法,情况也是如此。
如果您以前从未连接过服务器,也没有任何其他方式来验证 ssh 主机密钥,那么您可能需要更加小心用于连接的网络。
答案2
在问题的第二部分,您似乎担心您的笔记本被盗,并且您的无密码 SSH 登录服务器的私钥也会被盗。
请注意,这个问题(私钥问题)可以通过用“密码”加密存储私钥来轻松解决:它们可以最初被加密,而生成时ssh-keygen实用程序,通过在生成过程结束时提供密码,或者,如果你已经解密,使用ssh-keygen带有-p
选项的实用程序。密钥加密后,每次登录时都会要求您输入相关密码,如果正确,则一切将正常进行。
另外,如果你不想每次启动 ssh 客户端时都输入密码,你可以使用ssh 代理:它可以在内存中跟踪未加密的私钥。您只需运行ssh 添加指向保存加密密钥的文件,在请求密码后,密钥将添加到 ssh-agent 管理的集合中。之后,每次 SSH 客户端需要受密码保护的密钥时,ssh-agent 都会透明地向 ssh 客户端提供相关的未加密私钥。因此,对于您来说,无需以交互方式输入它。
请注意,ssh-agent 可以管理大量密钥,并且显然您可以ssh-add
在登录/启动时“调整”您的笔记本/台式机以启动该实用程序(以填充 ssh-agent 密钥集)。
此外,如果有人偷了你的笔记本电脑,你的私钥可能不是你要泄露的唯一“敏感”内容:请注意,在今天的 Linux 桌面发行版中,非常很容易设置一个依赖于“加密”文件系统的笔记本(作为/home
启动器,但如果需要的话,也可以是整个笔记本/
)。所以,请也考虑这一点。
显然,以上所有情况不是申请如果你不依靠你自己笔记本。
PS:关于将未加密私钥的两半存储在不同介质上的可能性:我强烈建议你不是这样做,因为以未加密的形式保留两份敏感内容比保留两份完整的加密内容要糟糕得多!
答案3
您的问题的第一部分已在之前的回复中得到解答。对于您的第二部分,我建议使用 pam_google_authenticator 为您的 ssh 登录添加第二个因素。它在任何发行版上都相当容易设置和配置。如果您随身携带的私钥被盗,他们无法使用来自 google-authenticator 的 TOTP 一次性密码登录您的服务器。
https://www.howtoforge.com/tutorial/secure-ssh-with-google-authenticator-on-centos-7