Tor onion service के जरिए SSH एक्सेस कैसे सेटअप करें
Tor onion service का उपयोग करके बिना किसी open port के VPS को सुरक्षित एक्सेस करें। इस गाइड में v3 client authorization और lockout से बचने के लिए सही स्टेप्स दिए गए हैं।
Tor onion service के माध्यम से SSH का उपयोग करने पर क्या बदलता है
Tor onion service के माध्यम से SSH का उपयोग करने पर आप ऐसे VPS को manage कर सकते हैं जो किसी भी port पर inbound connection स्वीकार नहीं करता है। सर्वर Tor network से जुड़ता है और उस connection को खुला रखता है। आपका SSH session उसी के माध्यम से वापस आता है, इसलिए public IP address पर किसी भी चीज़ को listen करने की आवश्यकता नहीं होती है।
logs पर इसका प्रभाव तुरंत दिखाई देता है। जिस सर्वर पर public SSH port खुला होता है, उस पर scanners द्वारा प्रतिदिन हजारों असफल password attempts दर्ज की जाती हैं। यदि आप sshd को onion service के पीछे ले जाते हैं और firewall पर inbound traffic को बंद कर देते हैं, तो /var/log/auth.log केवल उन्हीं sessions को record करेगा जिन्हें आपने शुरू किया है।
इसकी कीमत यह है कि tor हर admin session के रास्ते में रहता है। यह एक userspace daemon है जिसे login करने से पहले हर reboot के बाद start और bootstrap होना पड़ता है। port बंद करने से पहले इसकी योजना बना लें, क्योंकि यहाँ failure mode का अर्थ है ऐसी मशीन तक पहुँच खो देना जिस तक आप भौतिक रूप से नहीं पहुँच सकते।
किसी भी बदलाव से पहले वापस आने का रास्ता सुनिश्चित करें
जब तक आपके पास SSH का उपयोग न करने वाला रिकवरी पाथ न हो, तब तक शुरू न करें।
अभी अपने प्रोवाइडर का कंसोल खोलें, कंट्रोल पैनल में VNC या सीरियल कंसोल का उपयोग करें और उससे लॉग इन करें। यदि root पासवर्ड ज्ञात नहीं है, तो पहले पैनल से root पासवर्ड रीसेट करें और पुष्टि करें कि यह काम कर रहा है। जिस कंसोल को आपने कभी टेस्ट नहीं किया है, वह रिकवरी पाथ नहीं है।
नीचे दिया गया क्रम महत्वपूर्ण है। अगला चरण चलाने से पहले हर चरण को प्रमाणित किया जाता है, और onion रूट के काम करने तक port 22 खुला रहता है।
- tor इंस्टॉल करें और पुष्टि करें कि यह बूटस्ट्रैप हो रहा है।
- onion सर्विस को परिभाषित करें और एड्रेस पढ़ें।
- port 22 के खुले रहते हुए onion के माध्यम से कनेक्ट करें।
- क्लाइंट ऑथराइजेशन जोड़ें, फिर दोबारा कनेक्ट करें।
sshdको loopback पर बाइंड करें और port 22 को बंद करें।- रीबूट करें, फिर दोबारा onion के माध्यम से कनेक्ट करें।
अपनी वर्तमान SSH सेशन को पूरी प्रक्रिया के दौरान खुला रखें। एक स्थापित सेशन उस फायरवॉल बदलाव के बाद भी बनी रहती है जो एक नए कनेक्शन को ब्लॉक कर देगा, इसलिए यह बचाव की आपकी पहली पंक्ति है।
सर्वर पर tor इंस्टॉल करना
Ubuntu अपने रिपॉजिटरी में tor प्रदान करता है, लेकिन वह वर्ज़न अक्सर पुराना होता है। The Tor Project की रिपॉजिटरी में वही वर्ज़न उपलब्ध होता है जिसका वर्णन उनके डॉक्यूमेंटेशन में किया गया है। उनके apt repository guide में दिए गए कमांड्स का उपयोग करके इसे जोड़ें।
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 आपके रिलीज़ कोडनेम को लेता है, जिसे 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 नेटवर्क तक नहीं पहुँच पा रहा है, जो लगभग हमेशा एक आउटबाउंड फायरवॉल नियम या गलत क्लॉक सेटिंग के कारण होता है।
यूनिट का नाम एक भ्रम है। systemctl status tor स्वस्थ होने पर भी Active: active (exited) रिपोर्ट करता है, क्योंकि Debian और Ubuntu में tor को एक मल्टी-इंस्टेंस मास्टर यूनिट के रूप में पैकेज किया गया है, जिसका एकमात्र काम वास्तविक इंस्टेंस को लोड करना है। डेमन स्वयं tor@default.service के रूप में चलता है। status और journalctl के लिए उस नाम का उपयोग करें। tor को स्टार्ट, स्टॉप और रिलोड करने पर कमांड इंस्टेंस तक पहुँच जाते हैं, इसलिए 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 करने से रोका जा सकता है।
sudo systemctl reload tor
sudo cat /var/lib/tor/ssh/hostnameयह 56 base32 कैरेक्टर प्रिंट करता है, जिसके बाद .onion आता है। ये कैरेक्टर encoded रूप में सर्विस की public key हैं। इसमें कोई certificate authority नहीं है और न ही कहीं कोई name registration होता है।
Tor को /var/lib/tor/ssh/ स्वयं बनाने दें। यदि आप इसे गलत owner या 0700 से अधिक ढीले mode के साथ मैन्युअल रूप से बनाते हैं, तो tor इसका उपयोग करने से मना कर देगा और journal में यह रिपोर्ट करेगा कि directory बहुत अधिक permissive है। इसके अंदर की फाइलें सर्विस की पहचान हैं: hs_ed25519_secret_key ही वह address है। उस directory का mode 600 के साथ बैकअप लें और उसकी एक कॉपी बॉक्स से बाहर रखें, क्योंकि इसे खोने का अर्थ है एक नया address और हर client पर config में बदलाव करना।
अपने वर्कस्टेशन से कनेक्ट करें
आपके वर्कस्टेशन को एक 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 पतों को डायरेक्टरी सिस्टम से नहीं खोजा जा सकता, इसलिए पता एक गुप्त जानकारी की तरह काम करता है, लेकिन यह सामान्य तरीकों से लीक हो सकता है: शेल हिस्ट्री और 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 बॉडी को डिकोड करता है, इसलिए इसके बजाय इसका उपयोग करें।
सर्वर पर, पब्लिक की इंस्टॉल करें।
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 बिना किसी त्रुटि के फाइल को अनदेखा कर देगा और सर्विस चुपचाप किसी के भी लिए खुली रहेगी जिसके पास पता है।
क्लाइंट पर, प्राइवेट की इंस्टॉल करें। 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 को अभी भी कनेक्ट होना चाहिए। बिना की (key) वाली मशीन से, उसी पते पर कनेक्शन विफल होना चाहिए। यह विफलता इस बात का प्रमाण है कि ऑथराइजेशन सक्रिय है।
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 को अनदेखा कर दिया जाता है: sshd नहीं, बल्कि ssh.socket listening socket का स्वामी है। जाँचें कि आप किस स्थिति में हैं।
systemctl is-enabled ssh.socketयदि यह enabled प्रिंट करता है, तो sudo systemctl edit ssh.socket चलाएँ और इसे जोड़ें।
[Socket]
ListenStream=
ListenStream=127.0.0.1:22खाली ListenStream= packaged unit से विरासत में मिली वैल्यू को हटा देता है। यदि आप उस लाइन को छोड़ देते हैं, तो आप 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 प्रबंधन है। पहले 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 में होता है और network के साथ ही शुरू हो जाता है। Tor एक ऐसी प्रक्रिया है जिसे शुरू होना, bootstrap करना और किसी भी काम के शुरू होने से पहले एक guard relay तक पहुँचना आवश्यक है। जब यह विफल हो जाता है, तो आपको provider console का उपयोग करना पड़ता है।
Clock accuracy. Onion service descriptors समय अवधि के आधार पर प्रकाशित किए जाते हैं, इसलिए गलत clock होने पर address lookup विफल हो जाता है और कहीं भी कोई स्पष्ट संदेश नहीं मिलता है। timedatectl को System clock synchronized: yes रिपोर्ट करना चाहिए।
आपको जो लाभ मिलता है वह यह है कि exposure अब इस पर निर्भर नहीं करता कि 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 केवल network path की सुरक्षा करती है, उसके आगे कुछ नहीं।
विफलता के प्रकार और आपको दिखाई देने वाली त्रुटियाँ
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 कर सके। जाँचें कि torrc में ClientOnionAuthDir मौजूद है, डायरेक्टरी का मोड 0700 है, फ़ाइल का नाम .auth_private पर समाप्त होता है, और debian-tor इसे पढ़ सकता है।
F5, "Onion Service Wrong Client Authorization"। प्राइवेट की सर्वर पर मौजूद .auth फ़ाइल से मेल नहीं खाती है। base32 स्ट्रिंग के अंदर कोई अतिरिक्त = या अनचाही नई लाइन (newline) होने से यह त्रुटि आती है।
nc: invalid option -- 'X'। OpenBSD netcat के बजाय 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 होने के लिए भी समय चाहिए होता है, इसलिए address उस समय के बाद जवाब देता है जब machine ping का जवाब दे देती है। यदि यह कभी जवाब नहीं देता है, तो console पर login करें और sudo journalctl -u tor@default -b पढ़ें, जहाँ torrc syntax error या /var/lib/tor/ssh पर permissions की समस्या दर्ज होती है।
क्या SSH over Tor, WireGuard की तुलना में धीमा है?
हाँ, काफी बड़े अंतर से। onion service से connection यादृच्छिक रूप से चुने गए लगभग छह relays को पार करता है, जबकि WireGuard सीधे आपके सर्वर तक एक encrypted hop है। typing में देरी महसूस होती है और transfers धीमे होते हैं। एक सामान्य setup यह है कि दैनिक कार्य के लिए WireGuard का उपयोग किया जाए और onion service को आपातकालीन मार्ग के रूप में रखा जाए जो टूटे हुए VPN config के बावजूद काम करता रहे।