问题描述
在通过 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
其中 ubuntu
是 deviceA
的用户名。此 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
行有关,因为 deviceA
和 deviceB
在同一网络上,这可能会以某种方式导致问题。
问题
我如何确保我也能够从 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。