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