Tor onion service के जरिए SSH कैसे सेटअप करें
Tor onion service का उपयोग करके VPS पर SSH एक्सेस सुरक्षित करें। बिना किसी ओपन पोर्ट के सर्वर मैनेज करने का तरीका, v3 ऑथेंटिकेशन और लॉकआउट से बचने के सटीक स्टेप्स यहाँ जानें।
Tor onion service के माध्यम से SSH का उपयोग करने पर क्या बदलता है
Tor onion service के माध्यम से SSH का उपयोग करने पर आप ऐसे VPS को manage कर सकते हैं जो किसी भी port पर inbound connection स्वीकार नहीं करता है। सर्वर Tor network से बाहर की ओर connect होता है और उस connection को खुला रखता है। आपका SSH session उसी के माध्यम से वापस आता है, इसलिए public IP address पर किसी भी service को listen करने की आवश्यकता नहीं होती है।
इसका log पर तत्काल प्रभाव पड़ता है। जिस सर्वर पर public SSH port खुला होता है, उस पर scanners द्वारा प्रतिदिन हजारों असफल password attempts दर्ज की जाती हैं। यदि आप sshd को onion service के पीछे ले जाते हैं और firewall पर inbound traffic को block कर देते हैं, तो /var/log/auth.log केवल उन्हीं sessions को record करेगा जिन्हें आपने शुरू किया है।
इसकी कीमत यह है कि tor हर admin session के रास्ते में रहता है। यह एक userspace daemon है जिसे login करने से पहले हर reboot के बाद start और bootstrap होना पड़ता है। port बंद करने से पहले इसकी योजना बना लें, क्योंकि यहाँ failure mode का अर्थ है ऐसी machine तक पहुँच खो देना जिसे आप physically access नहीं कर सकते।
किसी भी बदलाव से पहले रिकवरी का रास्ता सुनिश्चित करें
जब तक आपके पास SSH का उपयोग न करने वाला रिकवरी का रास्ता न हो, तब तक शुरू न करें।
अभी अपने प्रोवाइडर का कंसोल खोलें, कंट्रोल पैनल में VNC या सीरियल कंसोल का उपयोग करें और उससे लॉग इन करें। यदि root पासवर्ड ज्ञात नहीं है, तो पहले पैनल से root पासवर्ड रीसेट करें और पुष्टि करें कि यह काम कर रहा है। जिस कंसोल को आपने कभी टेस्ट नहीं किया है, वह रिकवरी का रास्ता नहीं है।
नीचे दिया गया क्रम महत्वपूर्ण है। अगला चरण शुरू करने से पहले हर चरण को प्रमाणित किया जाता है, और port 22 तब तक खुला रहता है जब तक onion route काम न करने लगे।
- tor इंस्टॉल करें और पुष्टि करें कि यह bootstrap हो रहा है।
- onion service को परिभाषित करें और पता (address) पढ़ें।
- जब port 22 खुला हो, तब onion के माध्यम से कनेक्ट करें।
- client authorisation जोड़ें, फिर दोबारा कनेक्ट करें।
sshdको loopback पर bind करें और port 22 को बंद करें।- रीबूट करें, फिर दोबारा onion के माध्यम से कनेक्ट करें।
अपनी वर्तमान SSH session को पूरी प्रक्रिया के दौरान खुला रखें। एक स्थापित session उस firewall बदलाव के बाद भी बनी रहती है जो किसी नई session को ब्लॉक कर देगा, इसलिए यह बचाव की आपकी पहली पंक्ति है।
सर्वर पर tor इंस्टॉल करें
Ubuntu अपने रिपॉजिटरी में tor प्रदान करता है, लेकिन वह वर्ज़न अक्सर पुराना होता है। The Tor Project की रिपॉजिटरी में वही वर्ज़न होता है जिसका वर्णन उनके डॉक्यूमेंटेशन में किया गया है। इसे उनकी apt रिपॉजिटरी गाइड में दिए गए कमांड्स का उपयोग करके जोड़ें।
sudo apt update
sudo apt install -y apt-transport-https wget gpg
wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | sudo tee /usr/share/keyrings/deb.torproject.org-keyring.gpg >/dev/null/etc/apt/sources.list.d/tor.sources लिखें। Suites आपके release codename का उपयोग करता है, जिसे lsb_release -cs प्रिंट करता है (Ubuntu 24.04 पर noble)।
Types: deb deb-src
URIs: https://deb.torproject.org/torproject.org/
Suites: noble
Components: main
Signed-By: /usr/share/keyrings/deb.torproject.org-keyring.gpgsudo apt update
sudo apt install -y tor deb.torproject.org-keyring
sudo journalctl -u tor@default -n 20 --no-pagerलॉग का अंत Bootstrapped 100% (done) के साथ होना चाहिए। यदि यह उससे नीचे अटक जाता है, तो इसका मतलब है कि tor नेटवर्क तक नहीं पहुँच पा रहा है। इसका कारण लगभग हमेशा outbound firewall rule या गलत system clock होता है।
Unit का नाम एक भ्रम है। systemctl status tor स्वस्थ होने पर भी Active: active (exited) रिपोर्ट करता है, क्योंकि Debian और Ubuntu में tor को एक multi-instance master unit के रूप में पैकेज किया गया है, जिसका एकमात्र काम वास्तविक instance को शुरू करना है। Daemon स्वयं tor@default.service के रूप में चलता है। status और journalctl के लिए इसी नाम का उपयोग करें। tor को start, stop और reload करने पर कमांड्स वास्तविक instance तक पहुँच जाते हैं, इसलिए sudo systemctl reload tor आपकी अपेक्षा के अनुसार काम करता है।
Port 22 के लिए onion service को परिभाषित करें
/etc/tor/torrc में दो लाइनें जोड़ें।
HiddenServiceDir /var/lib/tor/ssh/
HiddenServicePort 22 127.0.0.1:22दूसरी लाइन Tor को यह निर्देश देती है कि वह onion address पर virtual port 22 को स्वीकार करे और उसे बॉक्स पर 127.0.0.1:22 से कनेक्ट करे। Tor loopback के माध्यम से sshd तक पहुँचता है, और यही कारण है कि बाद में sshd को public address पर listen करना बंद करने के लिए कहा जा सकता है। उस दूसरी लाइन को 127.0.0.1:80 पर स्थित किसी web server की ओर इंगित करें, और यही दो directives onion address पर एक साइट प्रकाशित करने के काम आते हैं, जो Tor इंस्टॉल होने के बाद चलाने के लिए एक उपयोगी दूसरी service है।
sudo systemctl reload tor
sudo cat /var/lib/tor/ssh/hostnameयह 56 base32 कैरेक्टर प्रिंट करता है, जिसके बाद .onion आता है। ये कैरेक्टर encoded रूप में service की public key हैं। इसमें कोई certificate authority नहीं है और कहीं भी कोई name registration नहीं होता है।
Tor को /var/lib/tor/ssh/ स्वयं बनाने दें। यदि आप इसे गलत owner के साथ या 0700 से अधिक ढीले mode के साथ मैन्युअल रूप से बनाते हैं, तो Tor इसका उपयोग करने से मना कर देगा, और journal में directory के बहुत अधिक permissive होने की रिपोर्ट आएगी। इसके अंदर की फाइलें service की पहचान हैं: hs_ed25519_secret_key ही वह address है। उस directory का mode 600 के साथ बैकअप लें और उसकी कॉपी को बॉक्स से बाहर रखें, क्योंकि इसे खोने का मतलब है एक नया address और हर client पर configuration में बदलाव करना।
अपने वर्कस्टेशन से कनेक्ट करें
आपके वर्कस्टेशन पर एक tor client की आवश्यकता है, जिसे किसी भी कॉन्फ़िगरेशन की जरूरत नहीं होती है। Debian या Ubuntu पर यह sudo apt install -y tor netcat-openbsd है। Tor फिर 127.0.0.1:9050 पर SOCKS5 प्रॉक्सी के रूप में listen करता है। SOCKS एक सामान्य प्रॉक्सी प्रोटोकॉल है, और version 5 IP पते के बजाय hostname ले जा सकता है, जो यहाँ सबसे महत्वपूर्ण हिस्सा है।
OpenSSH में अपना कोई SOCKS client नहीं होता है, इसलिए एक हेल्पर प्रोग्राम कनेक्शन बनाता है। इसे ~/.ssh/config में जोड़ें।
Host myvps
HostName xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.onion
User admin
ProxyCommand /usr/bin/nc -X 5 -x 127.0.0.1:9050 %h %p
ServerAliveInterval 30-X 5 SOCKS5 को चुनता है और -x 127.0.0.1:9050 स्थानीय tor की ओर इशारा करता है। %h onion नाम को tor को एक नाम के रूप में सौंपता है, ताकि tor इसे नेटवर्क के भीतर resolve कर सके। यह OpenBSD netcat होना चाहिए। GNU netcat में -X विकल्प नहीं होता है और यह nc: invalid option -- 'X' के साथ रुक जाता है।
ssh myvpsपहला कनेक्शन धीमा होता है, क्योंकि कुछ भी होने से पहले tor एक सर्किट बनाता है। होस्ट की fingerprint को उसी तरह स्वीकार करें जैसे आप कहीं और करते हैं। यहाँ से आगे सामान्य SSH key हैंडलिंग बिना किसी बदलाव के लागू होती है। ट्रांसपोर्ट बदल गया है। प्रमाणीकरण (authentication) नहीं बदला है।
एक बार के उपयोग के लिए आप कॉन्फ़िगरेशन प्रविष्टि को छोड़ सकते हैं: torsocks ssh admin@xxxxx.onion वही काम करता है।
v3 क्लाइंट ऑथराइजेशन जोड़ें
वर्तमान स्थिति में, जो कोई भी पता जान लेता है वह आपके SSH बैनर तक पहुँच सकता है और अनुमान लगाना शुरू कर सकता है। Onion पतों को डायरेक्टरी सिस्टम से enumerate नहीं किया जा सकता, इसलिए पता एक गुप्त जानकारी की तरह काम करता है, लेकिन यह सामान्य तरीकों से लीक हो जाता है: शेल हिस्ट्री और git रिपॉजिटरी में कमिट की गई कॉन्फ़िगरेशन फाइलें। क्लाइंट ऑथराइजेशन इस कमी को दूर करता है। सर्विस अपने डिस्क्रिप्टर को क्लाइंट की के साथ एन्क्रिप्ट करके प्रकाशित करती है, इसलिए जिसके पास पता है लेकिन की (key) नहीं है, वह सर्विस को ढूंढ भी नहीं पाएगा।
क्लाइंट पर एक x25519 की-पेयर जनरेट करें। यह Tor Project की क्लाइंट ऑथराइजेशन गाइड से लिया गया पाइपलाइन है, जिसमें एक बदलाव किया गया है।
openssl genpkey -algorithm x25519 -out /tmp/k1.prv.pem
grep -v " PRIVATE KEY" /tmp/k1.prv.pem | base64 -d | tail --bytes=32 | base32 | sed 's/=//g' > /tmp/k1.prv.key
openssl pkey -in /tmp/k1.prv.pem -pubout | grep -v " PUBLIC KEY" | base64 -d | tail --bytes=32 | base32 | sed 's/=//g' > /tmp/k1.pub.keyउन लाइनों का प्रकाशित संस्करण base64pem -d का उपयोग करता है, जो स्टॉक Ubuntu इंस्टॉलेशन में उपलब्ध नहीं होता है। कमांड तब base64pem: command not found के साथ रुक जाता है। GNU base64 -d उसी PEM बॉडी को डिकोड करता है, इसलिए इसके बजाय उसका उपयोग करें।
सर्वर पर, public की इंस्टॉल करें।
sudo install -d -m 700 -o debian-tor -g debian-tor /var/lib/tor/ssh/authorized_clients
echo "descriptor:x25519:PASTE_PUBLIC_KEY_HERE" | sudo tee /var/lib/tor/ssh/authorized_clients/laptop.auth >/dev/null
sudo chown debian-tor:debian-tor /var/lib/tor/ssh/authorized_clients/laptop.auth
sudo systemctl reload torकेवल .auth पर समाप्त होने वाली फाइलें ही पढ़ी जाती हैं। इसे laptop.auth.txt के रूप में सेव करें, अन्यथा tor बिना कोई एरर दिए फाइल को अनदेखा कर देगा और सर्विस चुपचाप किसी भी ऐसे व्यक्ति के लिए खुली रहेगी जिसके पास पता है।
क्लाइंट पर, private की इंस्टॉल करें। Ubuntu पर tor डेमन debian-tor यूजर के रूप में चलता है और आपकी होम डायरेक्टरी की फाइलें नहीं पढ़ सकता, इसलिए डायरेक्टरी को ऐसी जगह रखें जहाँ वह यूजर पहुँच सके।
sudo install -d -m 700 -o debian-tor -g debian-tor /var/lib/tor/onion_auth
echo "ADDRESS_WITHOUT_DOT_ONION:descriptor:x25519:PASTE_PRIVATE_KEY_HERE" | sudo tee /var/lib/tor/onion_auth/myvps.auth_private >/dev/null
sudo chown debian-tor:debian-tor /var/lib/tor/onion_auth/myvps.auth_private
sudo chmod 600 /var/lib/tor/onion_auth/myvps.auth_privateक्लाइंट की /etc/tor/torrc में ClientOnionAuthDir /var/lib/tor/onion_auth जोड़ें और tor को रिलोड करें। यदि आप tor को अपने स्वयं के यूजर के रूप में चलाते हैं, उदाहरण के लिए macOS पर Homebrew बिल्ड, तो ClientOnionAuthDir को 0700 मोड के साथ ~/.tor/onion_auth पर पॉइंट करें।
उस फाइल के अंदर का पता 56 अक्षरों वाला है, जिसमें .onion सफिक्स नहीं है। काम पूरा होने पर /tmp/k1.prv.pem और /tmp/k1.prv.key को डिलीट कर दें।
अब दोनों दिशाओं में टेस्ट करें। ssh myvps को अभी भी कनेक्ट होना चाहिए। बिना की वाली मशीन से, वही पता फेल हो जाना चाहिए। वह विफलता ही इस बात का प्रमाण है कि ऑथराइजेशन सक्रिय है।
Port 22 को इस क्रम में बंद करें
सबसे पहले एक safety net सेट करें। यदि आप खुद को लॉक कर लेते हैं, तो यह एक कमांड नीचे दिए गए दोनों बदलावों को पंद्रह मिनट बाद वापस कर देगी।
sudo systemd-run --on-active=15m --unit=ssh-rescue \
/bin/sh -c 'ufw allow 22/tcp; rm -f /etc/systemd/system/ssh.socket.d/override.conf; systemctl daemon-reload; systemctl restart ssh.socket'एक बार जब आप पुष्टि कर लें कि onion route अभी भी काम कर रहा है, तो इसे sudo systemctl stop ssh-rescue.timer के साथ रद्द कर दें।
इसके बाद, sshd को public address पर listen करने से रोकें। Ubuntu 24.04 एक socket unit के माध्यम से ssh को सक्रिय करता है, इसलिए sshd_config में ListenAddress को अनदेखा कर दिया जाता है: listening socket का स्वामित्व ssh.socket के पास है, sshd के पास नहीं। जाँचें कि आप किस स्थिति में हैं।
systemctl is-enabled ssh.socketयदि यह enabled प्रिंट करता है, तो sudo systemctl edit ssh.socket चलाएँ और इसे जोड़ें।
[Socket]
ListenStream=
ListenStream=127.0.0.1:22खाली ListenStream= packaged unit से विरासत में मिली value को साफ़ कर देता है। यदि आप उस लाइन को छोड़ देते हैं, तो आप public listener को बनाए रखते हुए एक दूसरा listener जोड़ देंगे, जो कि इस चरण के विफल होने का सबसे आम कारण है।
sudo systemctl daemon-reload
sudo systemctl restart ssh.socket
ss -tlnp | grep ':22'ss को 127.0.0.1:22 दिखाना चाहिए और 0.0.0.0:22 पर कुछ भी नहीं। यदि ssh.socket अक्षम (disabled) था, तो /etc/ssh/sshd_config.d/10-onion.conf में ListenAddress 127.0.0.1 डालें, sudo systemctl restart ssh चलाएँ, और फिर उसी ss लाइन के साथ जाँच करें। वह आउटपुट ही दोनों स्थितियों में प्रमाण है।
फिर firewall, जो कि सामान्य VPS पर ufw rule management है। पहले sudo ufw status numbered चलाएँ और यह जो भी SSH rule सूचीबद्ध करे, उसे हटा दें।
sudo ufw status numbered
sudo ufw delete allow OpenSSH
sudo ufw default allow outgoing
sudo ufw default deny incoming
sudo ufw status verboseOutgoing traffic को अनुमति दें। Tor 443 और 9001 जैसे ports पर relays से जुड़ता है, इसलिए outbound default-deny policy Tor bootstrapping को रोक देती है और उसी समय आपके अंदर आने का एकमात्र शेष रास्ता भी बंद कर देती है। अधिकांश प्रदाता control panel में एक अलग network firewall भी चलाते हैं। वहां भी 22 को बंद करें, अन्यथा ufw जो भी रिपोर्ट करे, port पहुंच योग्य बनी रहेगी।
यदि इस box पर Docker चलता है, तो काम पूरा करने से पहले इसके published ports की जाँच करें। Docker अपने स्वयं के rules को उन्हीं tables में लिखता है और container ports को सीधे ufw के पार publish करता है, इसलिए ufw deny policy पूरी तस्वीर नहीं है।
भरोसा करने से पहले रीबूट करें
systemctl is-enabled tor@default
sudo rebootयदि पहली कमांड यह रिपोर्ट नहीं करती है कि सर्विस enabled है, तो रीबूट करने से पहले sudo systemctl enable tor@default चलाएं। दो मिनट प्रतीक्षा करें, फिर ssh myvps करें। बूट होने के बाद Tor को bootstrap होना पड़ता है, इसलिए मशीन के चालू होने के कुछ समय बाद ही onion address प्रतिक्रिया देना शुरू करता है।
यदि यह वापस नहीं आता है, तो कंसोल खोलें और sudo journalctl -u tor@default -b पढ़ें। वहां torrc सिंटैक्स त्रुटि या डायरेक्टरी अनुमति की समस्या दिखाई देगी। आप torrc को लागू करने से पहले उसके संपादन की जांच भी कर सकते हैं।
sudo -u debian-tor tor --verify-configWireGuard tunnel की तुलना में इसकी लागत
अपने स्वयं के VPS पर WireGuard VPN की तुलना में, एक onion service धीमी और कम अनुमानित होती है। इसे अपनाने से पहले इस समझौते के बारे में स्वयं के प्रति ईमानदार रहें।
Latency. एक client circuit में तीन relays होते हैं और service side पर तीन और जुड़ जाते हैं, इसलिए आपके keystrokes दुनिया भर में यादृच्छिक रूप से चुनी गई लगभग छह मशीनों से होकर गुजरते हैं। इंटरैक्टिव टाइपिंग में स्पष्ट देरी होती है, और फाइल कॉपी धीमी होती है। WireGuard केवल एक hop जोड़ता है। time ssh myvps 'echo ok' के साथ अपने मामले को मापें, क्योंकि यह आंकड़ा इस पर निर्भर करता है कि tor ने कौन सा circuit बनाया है और tor द्वारा नया circuit बनाने पर यह बदल जाता है।
Critical path में एक userspace daemon. WireGuard kernel में होता है और नेटवर्क के साथ ही शुरू हो जाता है। Tor एक ऐसी प्रक्रिया है जिसे शुरू होना, bootstrap होना और किसी भी काम के शुरू होने से पहले एक guard relay तक पहुँचना आवश्यक है। जब यह विफल होता है, तो आपको provider console का उपयोग करना पड़ता है।
Clock accuracy. Onion service descriptors समय अवधि के अनुसार प्रकाशित किए जाते हैं, इसलिए गलत clock होने पर address lookup विफल हो जाता है और कहीं भी स्पष्ट संदेश नहीं मिलता। timedatectl को System clock synchronized: yes रिपोर्ट करना चाहिए।
इसके बदले में आपको जो मिलता है वह ऐसी सुरक्षा है जो अब इस पर निर्भर नहीं करती कि firewall rule सही है या नहीं। स्कैन करने के लिए कोई port नहीं है और न ही कोई banner है जिसे प्राप्त किया जा सके, और address स्वयं एक public key है, इसलिए SSH शुरू होने से पहले ही endpoint अपनी पहचान सिद्ध कर देता है।
व्यावहारिक उत्तर आमतौर पर दोनों का उपयोग करना है। WireGuard को दैनिक मार्ग के रूप में चलाएं, और onion service को उस मार्ग के रूप में रखें जो WireGuard config गलत होने पर भी काम करता रहे। इससे एक public SSH port के बजाय केवल एक UDP port खुला रहता है। इनमें से कोई भी sshd को सुरक्षित करने का विकल्प नहीं है: key-only authentication और non-root login अभी भी मायने रखते हैं, क्योंकि एक onion service केवल नेटवर्क पथ की सुरक्षा करती है, उसके आगे कुछ नहीं।
विफलता के प्रकार और आपको दिखाई देने वाली त्रुटियाँ
Tor कभी भी Bootstrapped 0% को पास नहीं करता है। आउटबाउंड ट्रैफ़िक ब्लॉक है, या क्लॉक का समय बहुत अधिक गलत है। sudo ufw status verbose के साथ आउटगोइंग पॉलिसी की जाँच करें, फिर timedatectl चलाएँ।
systemctl status tor कहता है active (exited)। Debian और Ubuntu पर यह सामान्य है। इसके बजाय tor@default पढ़ें।
डिस्क्रिप्टर नहीं मिल रहा है। Tor SOCKS एक्सटेंडेड एरर F0 देता है, "Onion Service Descriptor Can Not be Found"। या तो डिस्क्रिप्टर अभी तक पब्लिश नहीं हुआ है, जिसमें रीलोड के बाद थोड़ा समय लगता है, या सर्वर पर tor नहीं चल रहा है।
F4, "Onion Service Missing Client Authorization"। क्लाइंट के पास कोई मेल खाता .auth_private नहीं है जिसका उपयोग tor कर सके। जाँचें कि ClientOnionAuthDir torrc में है, डायरेक्टरी का मोड 0700 है, फ़ाइल का नाम .auth_private पर समाप्त होता है, और debian-tor इसे पढ़ सकता है।
F5, "Onion Service Wrong Client Authorization"। प्राइवेट की सर्वर पर मौजूद .auth फ़ाइल से मेल नहीं खाती है। बेस32 स्ट्रिंग के अंदर एक ट्रेलिंग = या अतिरिक्त न्यूलाइन इस त्रुटि का कारण बनती है।
nc: invalid option -- 'X'। OpenBSD वाले के बजाय GNU netcat इंस्टॉल है। sudo apt install -y netcat-openbsd चलाएँ।
Could not resolve hostname। ssh ने सामान्य DNS का प्रयास किया, जिसके पास .onion के लिए कोई उत्तर नहीं है, इसलिए ProxyCommand कभी नहीं चला। ~/.ssh/config में Host पैटर्न आपके द्वारा टाइप किए गए नाम से मेल नहीं खाता है।
Permission denied (publickey)। टनल ने काम किया और tor का काम पूरा हो गया। इसे एक सामान्य permission denied publickey समस्या के रूप में देखें और इसमें tor को शामिल न करें।
FAQ
क्या onion service का मतलब वाकई यह है कि मेरे VPS पर कोई open port नहीं है?
हाँ, एक बार जब sshd को 127.0.0.1 पर bind कर दिया जाता है और firewall inbound traffic को drop कर देती है, तो ऐसा ही होता है। Tor एक relay के लिए outbound TCP connection बनाता है और आपका session उसी के माध्यम से वापस आता है, इसलिए सर्वर पर कोई भी चीज़ public address पर connection स्वीकार नहीं करती है। इसे सर्वर पर ss -tlnp चलाकर और कहीं बाहर से port scan करके सिद्ध करें। control panel में मौजूद provider के अपने network firewall को न भूलें, जो ufw से अलग एक नियंत्रण है और उसे भी बंद किया जाना चाहिए।
क्या SSH के लिए .onion address अपने आप में पर्याप्त सुरक्षा है?
नहीं। यह address 56 characters का होता है और इसे directory system से अनुमान लगाकर या enumerate नहीं किया जा सकता, इसलिए यह एक secret की तरह काम करता है, लेकिन यह shell history और config files के माध्यम से लीक हो सकता है। v3 client authorisation जोड़ें। इसके साथ, service descriptor आपकी client key के लिए encrypted हो जाता है, इसलिए जिस व्यक्ति के पास केवल address है, उसे extended error F4 मिलेगा और वह कभी sshd तक नहीं पहुँच पाएगा।
यदि reboot के बाद tor start होने में विफल हो जाए तो क्या होगा?
आप SSH access पूरी तरह खो देंगे, क्योंकि तब onion address ही अंदर आने का एकमात्र रास्ता होता है। इसीलिए port 22 बंद करने से पहले provider console का परीक्षण किया जाना चाहिए। boot के बाद Tor को bootstrap होने में भी समय लगता है, इसलिए machine के ping का जवाब देने के बाद ही address काम करना शुरू करता है। यदि यह कभी जवाब न दे, तो console पर login करें और sudo journalctl -u tor@default -b पढ़ें, जहाँ torrc syntax error या /var/lib/tor/ssh पर permissions की समस्या दर्ज होती है।
क्या Tor पर SSH, WireGuard की तुलना में धीमा है?
हाँ, काफी ज्यादा। onion service से connection यादृच्छिक रूप से चुने गए लगभग छह relays से होकर गुजरता है, जबकि WireGuard आपके सर्वर के लिए एक सीधा encrypted hop है। typing में lag महसूस होता है और transfers धीमे होते हैं। एक सामान्य setup यह है कि दैनिक काम के लिए WireGuard का उपयोग करें और onion service को आपातकालीन मार्ग के रूप में रखें जो VPN config टूटने पर भी काम करता रहे।