SSD Nodes Learn 🎉 VPS $5.50/মাস থেকে
নির্দেশিকা Matt Connorদ্বারা Matt Connor · আপডেট করা হয়েছে 2026-08-13

খোলা port ছাড়া Tor onion service-এ SSH

Tor onion service-এর আড়ালে sshd চালিয়ে VPS-এ inbound port বন্ধ রাখুন। Setup, v3 client authorization এবং lockout এড়াতে firewall বন্ধের সঠিক ক্রম জানুন।

Tor onion service-এর মাধ্যমে SSH ব্যবহারে কী পরিবর্তন হয়

Tor onion service-এর মাধ্যমে SSH ব্যবহার করলে আপনি এমন একটি VPS পরিচালনা করতে পারেন, যেটি কোনো port-এ inbound connection গ্রহণ করে না। সার্ভারটি Tor network-এ outbound connection স্থাপন করে এবং সেটি খোলা রাখে। আপনার SSH session ওই connection দিয়েই ফিরে আসে। তাই public IP address-এ কোনো service-কে listen করতে হয় না।

এর প্রভাব log-এ সঙ্গে সঙ্গে দেখা যায়। public SSH port থাকা একটি server-এ scanner-গুলো থেকে প্রতিদিন হাজার হাজার ব্যর্থ password প্রচেষ্টা জমা হয়। sshd-কে onion service-এর পেছনে রাখুন এবং firewall-এ inbound traffic বাদ দিন। তাহলে /var/log/auth.log শুধু আপনার শুরু করা session-গুলোর record রাখবে।

এর বিনিময়ে tor প্রতিটি administrative session-এর পথের একটি আবশ্যিক অংশ হয়ে থাকে। এটি একটি userspace daemon, যেটিকে প্রতিটি reboot-এর পরে start ও bootstrap করতে হয়, তারপর আপনি login করতে পারবেন। port বন্ধ করার আগে এর জন্য পরিকল্পনা করুন। কারণ এখানে failure mode হলো এমন একটি machine-এ access হারানো, যেটিতে আপনি শারীরিকভাবে পৌঁছাতে পারবেন না।

কোনো পরিবর্তন করার আগে বিকল্প প্রবেশপথ নিশ্চিত করুন

SSH ব্যবহার না করে প্রবেশ করা যায়—এমন একটি recovery path নিশ্চিত না হওয়া পর্যন্ত কাজ শুরু করবেন না।

এখনই আপনার provider-এর console খুলুন। Control panel-এর VNC বা serial console ব্যবহার করে এতে লগ ইন করুন। root password জানা না থাকলে প্রথমে panel থেকে root password reset করুন এবং এটি কাজ করছে কি না নিশ্চিত করুন। আগে কখনো পরীক্ষা না করা console কোনো recovery path নয়।

নিচের ক্রমটি গুরুত্বপূর্ণ। পরের ধাপ চালানোর আগে প্রতিটি ধাপ সফল হয়েছে কি না যাচাই করা হয়। onion route কাজ না করা পর্যন্ত port 22 খোলা থাকবে।

  1. tor install করুন এবং এটি bootstrap সম্পন্ন করছে কি না নিশ্চিত করুন।
  2. onion service সংজ্ঞায়িত করুন এবং address পড়ুন।
  3. port 22 খোলা থাকা অবস্থায় onion-এর মাধ্যমে সংযোগ করুন।
  4. client authorisation যোগ করুন, তারপর আবার সংযোগ করুন।
  5. sshd-কে loopback-এ bind করুন এবং port 22 বন্ধ করুন।
  6. reboot করুন, তারপর আবার onion-এর মাধ্যমে সংযোগ করুন।

পুরো প্রক্রিয়া জুড়ে বর্তমান SSH session খোলা রাখুন। নতুন সংযোগ আটকে দেবে—এমন firewall পরিবর্তনের পরও একটি established session সচরাচর চালু থাকে। তাই এটিই আপনার প্রথম rescue পথ।

সার্ভারে tor ইনস্টল করুন

Ubuntu-এর নিজস্ব repository-তে tor থাকে, তবে সেই build প্রায়ই পুরোনো হয়। Tor Project-এর repository-তে তাদের documentation-এ উল্লেখ করা version থাকে। তাদের apt repository guide-এ দেওয়া command ব্যবহার করে এটি যোগ করুন।

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.gpg
sudo apt update
sudo apt install -y tor deb.torproject.org-keyring
sudo journalctl -u tor@default -n 20 --no-pager

লগের শেষে Bootstrapped 100% (done) থাকা উচিত। এর নিচে আটকে থাকলে tor network-এ পৌঁছাতে পারছে না। এর কারণ প্রায় সব সময় outbound firewall rule অথবা clock-এর গুরুতর ভুল।

unit-এর নাম বিভ্রান্তিকর। সবকিছু সঠিক থাকলেও systemctl status tor Active: active (exited) রিপোর্ট করে, কারণ Debian এবং Ubuntu tor-কে একটি multi-instance master unit হিসেবে package করে। এর একমাত্র কাজ হলো প্রকৃত instance চালু করা। daemon নিজে tor@default.service হিসেবে চলে। status এবং journalctl-এর জন্য এই নাম ব্যবহার করুন। tor-এর start, stop এবং reload এখনও instance-এ পৌঁছায়, তাই sudo systemctl reload tor আপনার প্রত্যাশামতো কাজ করে।

পোর্ট 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-এ listening করা বন্ধ করানো যায়।

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-এর চেয়ে বেশি permissive mode ব্যবহার করলে, tor সেটি ব্যবহার করতে অস্বীকার করবে এবং journal-এ directory-টি অতিরিক্ত permissive বলে জানাবে। ভেতরের ফাইলগুলোই service identity: hs_ed25519_secret_key হলো address। ওই directory-টির mode 600 রেখে backup নিন এবং কপিটি মেশিনের বাইরে সংরক্ষণ করুন। এটি হারালে নতুন address তৈরি করতে হবে এবং প্রতিটি client-এ configuration সম্পাদনা করতে হবে।

আপনার workstation থেকে সংযোগ করুন

আপনার workstation-এ একটি tor client প্রয়োজন। এর জন্য কোনো configuration দরকার নেই। Debian বা Ubuntu-তে এটি হলো sudo apt install -y tor netcat-openbsd। এরপর Tor 127.0.0.1:9050-এ SOCKS5 proxy হিসেবে listen করবে। SOCKS একটি সাধারণ proxy protocol। এর version 5 IP address-এর পরিবর্তে hostname বহন করতে পারে। এখানে এই বৈশিষ্ট্যটিই গুরুত্বপূর্ণ।

OpenSSH-এর নিজস্ব SOCKS client নেই। তাই একটি helper program সংযোগটি তৈরি করে। এটি ~/.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 local tor-এর ঠিকানা নির্ধারণ করে। %h onion name-টি hostname হিসেবে tor-এর কাছে পাঠায়। ফলে tor network-এর ভেতরে name resolution করে। এখানে OpenBSD netcat ব্যবহার করতে হবে। GNU netcat-এ -X option নেই এবং এটি nc: invalid option -- 'X' দিয়ে বন্ধ হয়ে যায়।

ssh myvps

প্রথম সংযোগ ধীর হবে, কারণ অন্য কিছু করার আগে tor একটি circuit তৈরি করে। অন্য যেকোনো সংযোগের মতো host key fingerprint গ্রহণ করুন। এরপর স্বাভাবিক SSH key ব্যবস্থাপনা অপরিবর্তিতভাবে প্রযোজ্য হবে। শুধু transport পরিবর্তিত হয়েছে। authentication পরিবর্তিত হয়নি।

একবারের জন্য সংযোগ করলে configuration entry বাদ দিতে পারেন: torsocks ssh admin@xxxxx.onion একই কাজ করে।

v3 ক্লায়েন্ট অনুমোদন যোগ করুন

বর্তমান অবস্থায়, যে কেউ ঠিকানাটি জানলে আপনার SSH banner-এ পৌঁছে অনুমানভিত্তিক চেষ্টা শুরু করতে পারে। Onion address directory system থেকে তালিকাভুক্ত করা যায় না, তাই ঠিকানাটি একটি secret-এর মতো কাজ করে। তবে এটি সাধারণ উপায়ে ফাঁস হতে পারে: shell history অথবা git repository-তে commit করা config file-এর মাধ্যমে। Client authorisation এই দুর্বলতা দূর করে। Service তার descriptor একটি client key দিয়ে encrypted অবস্থায় প্রকাশ করে। ফলে ঠিকানা জানা থাকলেও key না থাকা কেউ service-টি locate করতেও পারে না।

Client-এ একটি x25519 key pair তৈরি করুন। এটি Tor Project-এর client authorisation guide-এ দেওয়া pipeline, তবে একটি পরিবর্তন আছে।

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 ব্যবহার করা হয়েছে। Stock Ubuntu install-এ এটি থাকে না। ফলে command-টি base64pem: command not found দেখিয়ে থেমে যায়। GNU base64 -d একই PEM body decode করতে পারে, তাই এর পরিবর্তে এটি ব্যবহার করুন।

Server-এ public key install করুন।

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 দিয়ে শেষ হওয়া file পড়া হয়। File-টি laptop.auth.txt নামে save করুন। তা না হলে tor কোনো error না দেখিয়ে file-টি উপেক্ষা করবে এবং service নীরবে ঠিকানা জানা যেকোনো ব্যক্তির জন্য উন্মুক্ত থাকবে।

Client-এ private key install করুন। Ubuntu-তে tor daemon debian-tor user হিসেবে চলে এবং আপনার home directory-এর file পড়তে পারে না। তাই directory-টি এমন স্থানে রাখুন যেখানে ওই user পৌঁছাতে পারে।

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

Client-এর /etc/tor/torrc-এ ClientOnionAuthDir /var/lib/tor/onion_auth যোগ করে tor reload করুন। আপনি যদি নিজের user হিসেবে tor চালান, যেমন macOS-এ Homebrew build ব্যবহার করলে, তাহলে ClientOnionAuthDir-কে mode 0700 সহ ~/.tor/onion_auth-এর দিকে নির্দেশ করুন।

ওই file-এর ভেতরের address হলো .onion suffix ছাড়া 56 characters। কাজ শেষ হলে /tmp/k1.prv.pem এবং /tmp/k1.prv.key মুছে দিন।

এখন উভয় দিক পরীক্ষা করুন। ssh myvps-এর মাধ্যমে এখনও সংযোগ হওয়া উচিত। কোনো key না থাকা machine থেকে একই address-এ সংযোগ ব্যর্থ হওয়া উচিত। এই ব্যর্থতাই প্রমাণ করে যে authorisation সক্রিয় আছে।

Port 22 বন্ধ করুন, এই ক্রমে

প্রথমে একটি নিরাপত্তা ব্যবস্থা করুন। আপনি সংযোগের বাইরে চলে গেলে নিচের দুটি পরিবর্তনই পনেরো মিনিট পরে বাতিল করতে এই একটি কমান্ড ব্যবহার করুন।

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 দিয়ে এটি বাতিল করুন।

এরপর public address-এ sshd-এর listening বন্ধ করুন। Ubuntu 24.04 socket unit-এর মাধ্যমে SSH সক্রিয় করে, তাই sshd_config-এর ListenAddress উপেক্ষিত হয়: listening socket-এর মালিক sshd নয়, ssh.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 লাইন দিয়ে পরীক্ষা করুন। উভয় ক্ষেত্রেই ওই output-ই প্রমাণ।

এরপর 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 verbose

বহির্গামী traffic অনুমোদিত রাখুন। Tor 443 এবং 9001-এর মতো port-এ relay-গুলোর সঙ্গে outbound connection তৈরি করে। তাই outbound default-deny policy Tor-এর bootstrapping বন্ধ করে এবং একই সময়ে আপনার প্রবেশের একমাত্র অবশিষ্ট পথও সরিয়ে দেয়। অধিকাংশ provider control panel-এ আলাদা network firewall-ও চালায়। সেখানেও 22 বন্ধ করুন। তা না হলে ufw যা দেখাক, port-টি reachable থাকবে।

এই মেশিনে Docker চললে কাজ শেষ হয়েছে ধরে নেওয়ার আগে published port-গুলো পরীক্ষা করুন। Docker একই table-এ নিজস্ব rule লেখে এবং container port সরাসরি ufw-এর বাইরে publish করে, তাই ufw deny policy একাই সম্পূর্ণ চিত্র দেখায় না।

Reboot করার আগে এটি যাচাই করুন

systemctl is-enabled tor@default
sudo reboot

প্রথম কমান্ডে service-টি enabled হিসেবে না দেখালে reboot করার আগে sudo systemctl enable tor@default চালান। 2 মিনিট অপেক্ষা করুন, তারপর ssh myvps চালান। boot-এর পরে Tor-কে bootstrap করতে হয়। তাই মেশিন চালু হওয়ার কিছু সময় পরে onion address সাড়া দিতে শুরু করে।

এটি কখনোই ফিরে না এলে console খুলে sudo journalctl -u tor@default -b পড়ুন। সেখানে torrc-এর syntax error বা directory permission সমস্যা দেখানো হবে। প্রয়োগ করার আগে torrc-এ করা পরিবর্তনও যাচাই করতে পারেন।

sudo -u debian-tor tor --verify-config

WireGuard tunnel-এর পাশে এর খরচ

নিজের VPS-এ WireGuard VPN ব্যবহারের তুলনায় onion service ধীর এবং কম পূর্বানুমানযোগ্য। এটি ব্যবহারের সিদ্ধান্ত নেওয়ার আগে এই trade-off সম্পর্কে বাস্তবসম্মত থাকুন।

Latency। Client circuit-এ 3টি relay থাকে এবং service side-এ আরও 3টি relay যুক্ত হয়। ফলে আপনার keystroke বিশ্বজুড়ে এলোমেলোভাবে নির্বাচিত প্রায় 6টি machine অতিক্রম করে। ইন্টার‌্যাক্টিভ typing-এ দৃশ্যমান বিলম্ব হয় এবং file copy ধীর হয়। WireGuard মাত্র 1টি hop যোগ করে। আপনার ক্ষেত্রে প্রকৃত ফলাফল time ssh myvps 'echo ok' দিয়ে মাপুন, কারণ কোন circuit tor তৈরি করেছে তার ওপর এই মান নির্ভর করে এবং tor নতুন circuit তৈরি করলে তা পরিবর্তিত হয়।

Critical path-এ userspace daemon। WireGuard kernel-এ চলে এবং network-এর সঙ্গে চালু হয়। Tor এমন একটি process, যাকে start করতে, bootstrap করতে এবং কোনো guard relay-এ পৌঁছাতে হয়; এর আগে কিছুই কাজ করে না। এটি ব্যর্থ হলে আপনাকে provider console ব্যবহার করতে হবে।

Clock-এর নির্ভুলতা। Onion service descriptor নির্দিষ্ট time period-এর ভিত্তিতে প্রকাশিত হয়। তাই clock-এর সময় অনেক ভুল হলে কোথাও স্পষ্ট message না দেখিয়েই address lookup ব্যর্থ হয়। timedatectl-এ System clock synchronized: yes রিপোর্ট হওয়া উচিত।

এর বিনিময়ে আপনি এমন exposure পান, যা firewall rule সঠিক থাকার ওপর আর নির্ভর করে না। Scan করার মতো কোনো port নেই এবং সংগ্রহ করার মতো কোনো banner নেই। Address-টি নিজেই একটি public key। তাই SSH শুরু হওয়ার আগেই endpoint তার পরিচয় প্রমাণ করে।

বাস্তবে সাধারণত উভয়টি ব্যবহার করাই ভালো। দৈনন্দিন সংযোগের জন্য WireGuard চালান এবং WireGuard config ভুল হলেও কাজ করে এমন route হিসেবে onion service রেখে দিন। এতে public SSH port-এর পরিবর্তে মাত্র 1টি UDP port খোলা থাকে। এর কোনোটি sshd নিজে harden করার বিকল্প নয়। Key-only authentication এবং non-root login এখনও গুরুত্বপূর্ণ, কারণ onion service শুধু network path সুরক্ষিত করে; এর বাইরে আর কিছু সুরক্ষিত করে না।

ব্যর্থতার ধরন এবং যে ত্রুটিগুলো দেখবেন

Tor কখনো Bootstrapped 0% অতিক্রম করে না। Outbound traffic ব্লক করা আছে, অথবা clock-এর সময় অনেক ভুল। sudo ufw status verbose দিয়ে outgoing policy পরীক্ষা করুন, তারপর timedatectl চালান।

systemctl status tor-এ active (exited) দেখায়। Debian এবং Ubuntu-এ এটি স্বাভাবিক। পরিবর্তে tor@default পড়ুন।

Descriptor পাওয়া যাচ্ছে না। Tor SOCKS extended error F0 ফেরত দেয়: "Onion Service Descriptor Can Not be Found"। Descriptor এখনো publish না হয়ে থাকতে পারে; reload-এর পরে এটি হতে অল্প সময় লাগে। অথবা server-এ tor চলছে না।

F4, "Onion Service Missing Client Authorization"। Client-এর কাছে এমন কোনো matching .auth_private নেই, যা tor ব্যবহার করতে পারে। torrc-এ ClientOnionAuthDir আছে কি না, directory-এর mode 0700 কি না, filename-এর শেষে .auth_private আছে কি না এবং debian-tor এটি পড়তে পারে কি না পরীক্ষা করুন।

F5, "Onion Service Wrong Client Authorization"। Private key server-এর .auth file-এর সঙ্গে মেলে না। শেষে থাকা = অথবা base32 string-এর মধ্যে থাকা অতিরিক্ত 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 pattern আপনার টাইপ করা নামের সঙ্গে মেলে না।

Permission denied (publickey) Tunnel কাজ করেছে এবং tor-এর কাজ শেষ। এটিকে সাধারণ permission denied publickey সমস্যা হিসেবে বিবেচনা করুন এবং tor-কে এর বাইরে রাখুন।

FAQ

SSH কী সত্যিই আমার VPS-এ কোনো open port না রাখার অর্থ বোঝায়?

হ্যাঁ, একবার sshd-কে 127.0.0.1-এ bind করা হলে এবং firewall inbound traffic drop করলে। Tor একটি relay-এ outbound TCP connection তৈরি করে এবং আপনার session সেই relay-এর মাধ্যমে ফিরে আসে। তাই public address-এ কোনো কিছু connection গ্রহণ করে না। সার্ভারে ss -tlnp এবং অন্য কোনো স্থান থেকে port scan চালিয়ে এটি যাচাই করুন। Provider-এর control panel-এ থাকা নিজস্ব network firewall-এর কথাও ভুলবেন না। এটি ufw-এর থেকে আলাদা নিয়ন্ত্রণ এবং এটিও বন্ধ করতে হবে।

SSH-এর জন্য .onion address কি একাই যথেষ্ট security দেয়?

না। Address-টি 56 characters দীর্ঘ এবং directory system থেকে অনুমান বা enumerate করা যায় না। তাই এটি secret-এর মতো কাজ করে। তবে shell history এবং config file-এর মাধ্যমে এটি ফাঁস হতে পারে। 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 সমস্যা দেখা যায়।

WireGuard-এর তুলনায় Tor-এর মাধ্যমে SSH কি ধীর?

হ্যাঁ, উল্লেখযোগ্যভাবে ধীর। একটি onion service-এ connection সাধারণত randomভাবে নির্বাচিত প্রায় 6টি relay অতিক্রম করে। WireGuard-এ আপনার server পর্যন্ত সরাসরি একটি encrypted hop থাকে। টাইপ করার সময় latency অনুভূত হয় এবং file transfer ধীর হয়। প্রচলিত একটি setup হলো দৈনন্দিন কাজের জন্য WireGuard ব্যবহার করা এবং onion service-কে emergency route হিসেবে রেখে দেওয়া, যাতে VPN config নষ্ট হলেও access বজায় থাকে।