Torify/torsocks ssh 只能从设备本身工作,不能从其他设备工作

问题描述

在通过 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

下一步是从 deviceA ssh 进入 deviceB,因此我使用 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 连接:连接被拒绝(在socks5.c:202 的socks5_connect() 中) ssh:连接到主机 someoniondomaion.onion 端口 22:连接被拒绝

所以我还在 sudo systemctl restart tor 上运行了 deviceB,以防它不是由 torify 设置的,但具有相同的输出

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

无法确定主机“someoniondomain.onion (127.42.42.0)”的真实性。

ECDSA 密钥指纹是 SHA256:。

您确定要继续连接吗(是/否/[指纹])?

注意事项

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

TorAddress 127.0.0.1
TorPort 9050

OnionAddrRange 127.42.42.0

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

问题

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

解决方法

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

sudo systemctl restart tor

deviceB 上不足以通过 Tor 进行 ssh。似乎还必须明确启动,因为在 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。