SSH চিট শিট
একটি অনুসন্ধানযোগ্য, প্রিন্টযোগ্য SSH রেফারেন্স — সংযোগ, কী, কনফিগ, টানেলিং, SCP/SFTP এবং এজেন্ট ফরওয়ার্ডিং। বিনামূল্যে।
সংযোগ
10ssh user@host
user হিসেবে host-এ সংযোগ
ssh -p 2222 user@host
non-default port-এ সংযোগ
ssh -i ~/.ssh/id_ed25519 user@host
নির্দিষ্ট identity key ব্যবহার
ssh user@host 'uptime'
একটি রিমোট কমান্ড চালিয়ে exit
ssh -v user@host
ডিবাগের জন্য verbose আউটপুট (আরও -vvv)
ssh -t user@host 'sudo -i'
pseudo-terminal বাধ্য করা (interactive cmd-এর জন্য)
ssh -X user@host
X11 forwarding সক্রিয়
ssh -o ServerAliveInterval=60 user@host
timeout এড়াতে keepalive পাঠানো
exit / Ctrl-D
রিমোট সেশন বন্ধ
~.
জমে যাওয়া সেশন force-disconnect
Key তৈরি
8ssh-keygen -t ed25519 -C 'you@example.com'
আধুনিক Ed25519 key pair তৈরি
ssh-keygen -t rsa -b 4096
4096-bit RSA key pair তৈরি
ssh-keygen -t ed25519 -f ~/.ssh/work
নির্দিষ্ট ফাইলে key লেখা
ssh-keygen -p -f ~/.ssh/id_ed25519
বিদ্যমান key-এর passphrase পরিবর্তন
ssh-keygen -y -f ~/.ssh/id_ed25519
private key থেকে public key প্রিন্ট
ssh-keygen -l -f ~/.ssh/id_ed25519.pub
key fingerprint দেখান
ssh-keygen -lv -f ~/.ssh/id_ed25519.pub
fingerprint randomart চিত্র দেখান
ssh-keygen -R host
known_hosts থেকে host key সরানো
Public key ইনস্টল
7ssh-copy-id user@host
আপনার ডিফল্ট public key সার্ভারে কপি
ssh-copy-id -i ~/.ssh/work.pub user@host
নির্দিষ্ট public key কপি
ssh-copy-id -p 2222 user@host
কাস্টম port দিয়ে key কপি
cat ~/.ssh/id_ed25519.pub | ssh user@host 'cat >> ~/.ssh/authorized_keys'
ssh-copy-id না থাকলে ম্যানুয়াল কপি
chmod 700 ~/.ssh
.ssh ডিরেক্টরির সঠিক অনুমতি
chmod 600 ~/.ssh/authorized_keys
authorized_keys-এর সঠিক অনুমতি
pbcopy < ~/.ssh/id_ed25519.pub
public key ক্লিপবোর্ডে কপি (macOS)
SSH config (~/.ssh/config)
10Host myserver
Alias: `ssh myserver` দিয়ে সংযোগ
HostName 203.0.113.10
alias-এর প্রকৃত hostname বা IP
User deploy
এই host-এর ডিফল্ট username
Port 2222
এই host-এর ডিফল্ট port
IdentityFile ~/.ssh/work
এই host-এর জন্য key
IdentitiesOnly yes
শুধু তালিকাভুক্ত key দেওয়া
ForwardAgent yes
এই host-এ SSH agent forward
Host *.example.com
ডোমেইনের জন্য wildcard মিল
Host *
সব host-এর জন্য গ্লোবাল ডিফল্ট
ServerAliveInterval 60
সব host-এর keepalive ব্যবধান
Port forwarding / tunneling
7ssh -L 8080:localhost:80 user@host
Local: লোকাল 8080 দিয়ে host:80-এ পৌঁছানো
ssh -L 5432:db.internal:5432 user@host
সার্ভারের মাধ্যমে তৃতীয় host-এ local forward
ssh -R 9000:localhost:3000 user@host
Remote: লোকাল 3000-কে host:9000 হিসেবে প্রকাশ
ssh -D 1080 user@host
Dynamic: লোকাল port 1080-এ SOCKS proxy
ssh -N -L 8080:localhost:80 user@host
শুধু tunnel, রিমোট shell চালাবেন না
ssh -f -N -L 8080:localhost:80 user@host
ব্যাকগ্রাউন্ডে tunnel খোলা
ssh -g -L 8080:localhost:80 user@host
অন্য host-কে local forward ব্যবহারের অনুমতি
Jump host / bastion
5ssh -J jump@bastion user@target
target-এ পৌঁছাতে bastion দিয়ে hop
ssh -J h1,h2 user@target
একাধিক jump host চেইন
ProxyJump bastion
-J-এর config সমতুল্য
ProxyCommand ssh -W %h:%p bastion
পুরনো ProxyCommand-ভিত্তিক jump
ssh -o ProxyJump=bastion user@target
Inline ProxyJump অপশন
ফাইল ট্রান্সফার (scp ও sftp)
7scp file user@host:/path/
লোকাল ফাইল সার্ভারে কপি
scp user@host:/path/file .
রিমোট ফাইল বর্তমান dir-এ কপি
scp -r dir/ user@host:/path/
রিকার্সিভভাবে ডিরেক্টরি কপি
scp -P 2222 file user@host:/path/
কাস্টম port দিয়ে কপি (বড় -P লক্ষ্য করুন)
sftp user@host
interactive SFTP সেশন শুরু
put localfile / get remotefile
SFTP-এর ভিতরে upload / download
rsync -avz -e ssh dir/ user@host:/path/
SSH-এ দক্ষ sync (resumable)
ssh-agent ও forwarding
7eval "$(ssh-agent -s)"
বর্তমান shell-এ agent শুরু
ssh-add ~/.ssh/id_ed25519
agent-এ key যোগ
ssh-add -l
agent-এ লোড করা key তালিকা
ssh-add -D
agent থেকে সব key সরানো
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
passphrase macOS keychain-এ সংরক্ষণ
ssh -A user@host
এই কানেকশনের জন্য agent forward
ForwardAgent yes
agent forwarding-এর config সমতুল্য
“:q”-এর সাথে কোনো এন্ট্রি মেলে না।
সাহায্য দরকার?
এই টুলে কোনো সমস্যা পেয়েছেন? আমাদের দলকে জানান।