限制对服务器的 ssh 访问

Restrict ssh access to server

我在 LTE 路由器后面有一个 Raspberry Pi 用于连接到互联网。 LTE 路由器阻止为 Pi 分配静态 IP,因此我创建了一个服务,该服务通过自动 ssh 构建反向 ssh 隧道到我的私人服务器,以便能够远程访问我的 pi。现在的问题是,如果有人拿到树莓派的SD卡,他就可以从文件系统中读取私钥,从而访问我的服务器。

有什么方法可以保护我的服务器不被使用此密钥通过 ssh 连接访问,同时保持无需密码即可构建反向隧道的能力?

服务器由 strato 托管,由 Plesk 管理,因此每个域在 /var/www/vhost/domain.de 中都有自己的 vhost 文件系统。是否可以通过 Pi 上的确切此密钥为 ssh 访问隔离此 space,以便客户端只能看到此文件夹中的内容?或者我的问题还有其他解决方案吗?

在 raspberry 上创建一个新的(隧道)密钥,仅用于构建到您的 strato 服务器的反向隧道。
在你的 strato 服务器上将 public 键添加到 .ssh/authorized_keys 中,但在前面添加

command=/bin/false ssh-rsa ....

要连接,您必须将 -N 添加到 ssh 这将建立一个隧道,但不会尝试打开 shell。

现在钥匙丢了也无所谓了,只能建立反向隧道,不能开shell.

您甚至可以为所有 raspi 使用该密钥来构建单独的反向隧道。

显然,您在 .ssh/authorized_keys 中仅添加了 user 密钥,而不是 tunnel 密钥