security - 在公共 VPN 上通过 SSH 连接到服务器是否安全?
问题描述
如果我的计算机在公共 VPN 上(想想类似 NordVPN),那么通过 SSH 连接到服务器是否安全?我收到警告,The authenticity of host 'FOO.BAR' can't be established. Are you sure you want to continue connecting (yes/no/[fingerprint])?
我想知道它是否相关和/或我是否可以安全地忽略它。
解决方案
应该没问题。
如果您第一次连接并且没有将服务器的指纹导入到您的客户端,您收到的消息是正常的。对于每个服务器,指纹存储在客户端的 ~/.ssh/known_hosts 中。如果您连接到服务器,ssh 会将保存的指纹与来自服务器的实际指纹进行比较。
指纹是根据服务器的公钥计算出来的。请参阅https://superuser.com/questions/421997/what-is-a-ssh-key-fingerprint-and-how-is-it-generated
如果您从服务器获得不同的指纹,则说明有问题,您应该小心。
但是如果你是第一次连接,没有指纹,ssh 会问你,这是否是正确的服务器。这称为首次使用信任或 TOFU。
SSH 旨在通过不安全的网络实现安全连接。不安全的网络通常是互联网,但也可能是 VPN。因此,通过您的 VPN 进行 ssh 连接与通过 Internet 进行连接一样安全。
将 ssh 服务器暴露在互联网上存在一些问题。对默认端口进行大量扫描,并自动尝试暴力破解登录凭据或利用旧的 ssh 版本。因此你应该
- 使用非标准端口
- 禁用root访问并使用普通用户登录,而不是chroot
- 使用私钥而不是密码
- 使用 fail2ban 或其他自动化工具来阻止攻击
推荐阅读
- material-ui - 有什么方法可以将图像导入到我的 materialui-nextjs 项目中
- python-3.x - 如何使用 boto3 从 dynamodb 获取最后插入的项目?
- javascript - Light Gallery 未启动
- qt - 单例模式语法错误静态字段未命名非静态数据成员或基类
- html - 在图像旁边放置一个浮动 div
- python - A 类:、A 类(对象):或 A()类:
- python - Python Regex - 如何用相同的字符替换匹配中的每个字符(无功能)
- uipath - 选择器仅在 Internet Explorer 中打开网页时起作用
- laravel - Laravel Fortify 注销重定向
- migrate - 在 .Net 5 中添加对 netNamedPipeBinding 的引用