Torify/torsocks ssh 仅适用于设备本身,不适用于其他设备

Torify/torsocks ssh only working from device itself, and not from other devices

在 tor 上设置 ssh 时,我确定 ssh 只能在我尝试访问的设备 (deviceA) 上运行,但不能在另一台设备上运行 (deviceB)。

我全新安装了 Ubuntu Server 20.04 LTS,确认它已通过 wifi 连接到互联网,成功完成了 sudo apt 更新和升级命令,成功重启,并且 运行: sudo apt install tor。接下来,我运行

sudo nano /etc/tor/torrc

并包括:

HiddenServiceDir /var/lib/tor/other_hidden_service/
HiddenServicePort 22

(所以不是 HiddenServicePort 22 127.0.0.1:22

接下来,我使用以下命令重新启动了 tor 服务:

sudo systemctl restart tor

随后获取 ssh 服务器的洋葱域:

sudo cat /var/lib/tor/other_hidden_service/hostname

返回 someoniondomain.onion

下一步是从 deviceB ssh 进入 deviceA,所以我使用 USB 驱动器将 ssh 服务的洋葱地址复制到 deviceB .在这个 deviceB 我 运行:

sudo apt install tor
sudo apt install torify
torify ssh ubuntu@someoniondomain.onion

其中 ubuntudeviceA 的用户名。此 torify 命令返回:

333333333 PERROR torsocks[28775]: socks5 libc connect: Connection refused (in socks5_connect() at socks5.c:202) ssh: connect to host someoniondomaion.onion port 22: Connection refused

所以我也在 deviceB 上 运行 sudo systemctl restart tor 以防不是由 torify 设置,但输出相同。

但是,当我 运行 来自 deviceA 本身的相同命令时,它成功地通过 ssh 进入自身,如输出所示:

The authenthicity of host 'someoniondomain.onion (127.42.42.0)' can't be established.

ECDSA key fingerprint is SHA256:.

Are you sure you want to continue connecting (yes/no/[fingerprint])?

备注

我没有更改 /etc/tor/torrsocks.conf 文件,这意味着它包含:

TorAddress 127.0.0.1
TorPort 9050

OnionAddrRange 127.42.42.0

我目前的猜测是问题可能与 OnionAddrRange 127.42.42.0 行有关,因为 deviceAdeviceB 在同一网络上,这可能会以某种方式导致问题。

问题

如何确保我也能够通过 tor 从 deviceB ssh 进入 deviceA

问题的本质是假设 torify 建立了一个 tor 连接,而它本身并没有。此外,运行:

sudo systemctl restart tor

不足以在 deviceB 上通过 tor 进行 ssh。似乎还必须显式启动 tor,因为在 运行 之后 deviceB 上的以下命令有效:

sudo tor

必须验证 this answer 中命令的输出:

curl --socks5 localhost:9050 --socks5-hostname localhost:9050 -s https://check.torproject.org/ | cat | grep -m 1 Congratulations | xargs

在两台设备上都是 Congratulations,以验证它们都已连接到 tor。