简单描述一下我的情况:
2 台家用计算机,均连接到标准 AT&T 路由器。两台计算机都192.168.1.x
从路由器获取 IP 地址。我不知道路由器对外的 IP 是什么,也不知道如何确定它。我有一个非常标准的 AT&T 光纤计划,所以我假设我的路由器对外的 IP 是 DHCP,但我不是 100% 确定,而且我不确定如何检查这一点。两台计算机都运行最新版本的 Ubuntu(也与 Windows 双启动,但我很少使用 Windows)。
我经常需要将大型文件从一台计算机传输到另一台计算机,安装openssh-server
和使用该命令似乎是最有效的方法,所以我一直都是这样做的。使用该命令获取一台机器的本地 IP,然后移动大量文件,scp
非常简单。ifconfig
scp
两台机器的密码都很好sudo
,包括大写字母、小写字母、数字和特殊符号,而且我不会在其他地方使用这个密码,所以别人不会知道,而且很难猜到。我确实有关于这两台电脑的信息,可以用来伪造我的身份。
作为一般惯例,当我完成scp
工作后,我会sudo systemctl stop ssh
关闭sudo systemctl disable ssh
openssh 服务器,直到下次需要进行传输。我使用自动驾驶汽车数据集,它们已经变得非常庞大(最新的 Waymo 和 NuScenes 数据集解压后约为 500GB),因此对于一些特别大的传输,我会ssh
在一夜之间保持启用状态。
所以我的问题是,按照上述方法安装并运行openssh-server
(systemd
进程名称ssh
)是否会面临任何安全风险?如果是这样,建议采取哪些措施来缓解?
答案1
hardillb 的回答几乎涵盖了这一点,但至于查找公共和路由器 ip,此命令应在“default via”后显示默认网关地址(路由器 ip):,ip route show default
此命令用于查找公共 ip:。curl https://ipinfo.io/ip; echo
或者您可以直接访问 whatismyip.com。服务器故障答案中的良好安全实践:
为了尽可能确保安全,我建议采取以下步骤。
- 禁用基于密码的 ssh 登录并生成一组用于验证 ssh 客户端的公钥/私钥。这将阻止人们试图暴力猜测用户名/密码。
- 启用 IPv6 防火墙来阻止所有非本地计算机的访问(这可能是通过链接本地地址,或者通过限制对前缀的访问来获得固定的全局前缀)
- 确保通过 SSH 禁用直接 root 访问(几乎任何 SSH 的默认设置都已强制执行此操作)