লঞ্চার পণ্য Bitnami ডকুমেন্টেশনimaxe CLI ব্লগ যোগাযোগ
imaxe ssh অ্যাক্সেস v1.0.0

SSH অ্যাক্সেস, নিয়ন্ত্রণে

ফাইল হাতে সম্পাদনা না করেই তোমার সার্ভারের রিমোট অ্যাক্সেস পরিচালনা করো: অনুমোদিত কী, হোস্ট কী, সক্রিয় সেশন এবং sshd-এর হার্ডেনিং — সবই রিলোড করার আগে কনফিগারেশন যাচাই করে।

$ imaxe ssh status
সংস্করণ
v1.0.0
সাবকমান্ড
10
কনফিগ
/etc/imaxe/ssh.yml
root প্রয়োজন
হ্যাঁ
পরিচালিত ব্যবহারকারী
ubuntu

এই মডিউল কী করে #

SSH হলো তোমার সার্ভারে প্রবেশের দরজা: যে এনক্রিপ্টেড চ্যানেলের মাধ্যমে তুমি সেটি পরিচালনার জন্য সংযুক্ত হও। সেই দরজাটি ঠিকঠাক লাগানো থাকা — সঠিক চাবি দিয়ে এবং বাড়তি তালা ছাড়া — এটাই একটি নিরাপদ সার্ভারকে উন্মুক্ত সার্ভার থেকে আলাদা করে।

ssh মডিউল সেই রিমোট অ্যাক্সেসের কাজগুলো একটি মাত্র কমান্ডে একত্র করে: ব্যবহারকারীর অনুমোদিত কী পরিচালনা করে (যোগ করা, তালিকাভুক্ত করা, সরানো), যে হোস্ট কী দিয়ে সার্ভার ক্লায়েন্টদের কাছে নিজেকে চিহ্নিত করে সেগুলো নিয়ন্ত্রণ করে, সক্রিয় সেশন দেখায় এবং তোমার কনফিগারেশনে সংজ্ঞায়িত sshd-এর হার্ডেনিং যাচাই বা পুনরায় প্রয়োগ করে। sshd-কে স্পর্শ করে এমন প্রতিটি অপারেশন আগে কনফিগারেশন যাচাই করে (sshd -t) যাতে একটি ভুল পরিবর্তন তোমাকে বাইরে ফেলে না রাখে।

শুরু করার আগে

কী পরিবর্তন করার বা sshd পুনরায় চালু করার সময় একটি খোলা সেশন হাতের কাছে রাখো: এতে কিছু ভুল হলেও তুমি ভেতরে থেকে সেটি ঠিক করতে পারবে। মডিউলটি ডিফল্টভাবে পরিচালিত ব্যবহারকারী ubuntu-এর উপর কাজ করে; অন্য কারও উপর কাজ করতে --user ব্যবহার করো।

দ্রুত নির্দেশিকাধাপে ধাপে কাজ

সাধারণ কাজ #

তুমি কী করতে চাও তা বেছে নাও। প্রতিটি রেসিপিতে কমান্ড আগে থেকেই লেখা আছে — শুধু ব্যবহারকারী বা কী-টি তোমার নিজেরটা দিয়ে বদলে কপি করুন-এ চাপ দাও।

1

SSH অ্যাক্সেসের অবস্থা দেখা

এক নজরে যাচাই করো যে sshd সক্রিয় এবং ঠিকঠাক কনফিগার করা আছে।

ubuntu ব্যবহারকারী দিয়ে SSH-এর মাধ্যমে তোমার সার্ভারে সংযুক্ত হও এবং চালাও:

terminal
$ sudo imaxe ssh status

কোনো স্ক্রিপ্টের জন্য দরকার? --json যোগ করো, একই তথ্য মেশিন-পাঠযোগ্য আকারে পাবে:

terminal
$ sudo imaxe ssh status --json
তুমি দেখতে পাবে sshd সক্রিয় কিনা, কোন পোর্টে শোনে এবং প্রয়োগ করা হার্ডেনিংয়ের একটি সারসংক্ষেপ।
2

একটি অনুমোদিত কী যোগ বা সরানো

একটি নতুন মেশিনকে অ্যাক্সেস দাও বা আর ব্যবহার না করা একটিকে প্রত্যাহার করো।

প্রথমে দেখো পরিচালিত ব্যবহারকারীর জন্য এই মুহূর্তে কোন কীগুলো অনুমোদিত:

terminal
$ sudo imaxe ssh keys list

একটি পাবলিক কী আর্গুমেন্ট হিসেবে দিয়ে যোগ করো (অথবা স্ট্যান্ডার্ড ইনপুট থেকে পড়তে - ব্যবহার করো):

terminal
$ sudo imaxe ssh keys add "ssh-ed25519 AAAAC3Nz... ana@portatil" --comment "ana@portatil"

আর দরকার নেই? এর fingerprint বা মন্তব্য দিয়ে সরিয়ে দাও:

terminal
$ sudo imaxe ssh keys remove "ana@portatil"
ব্যবহারকারীর authorized_keys হালনাগাদ হয়ে যায়। keys list দিয়ে ফলাফল যাচাই করো।
3

ক্লোন করার পর হোস্ট কী পুনরায় তৈরি

একটি AMI থেকে মেশিন তৈরি করার পর অপরিহার্য।

যখন তুমি একটি ইমেজ ক্লোন করো, সব কপি একই সার্ভার পরিচয় উত্তরাধিকারসূত্রে পায়। এই মেশিনের জন্য নতুন ও অনন্য হোস্ট কী তৈরি করো:

terminal
$ sudo imaxe ssh hostkeys regenerate --yes
সার্ভার তার নিজস্ব পরিচয় পায়। খেয়াল রাখো: fingerprint বদলে যায়, তাই প্রতিটি ক্লায়েন্টের প্রথম পুনঃসংযোগে সেটি আবার গ্রহণ করতে বলা হবে।
4

হার্ডেনিং পর্যালোচনা ও পুনরায় প্রয়োগ

যাচাই করো sshd যেমন থাকা উচিত তেমনই কনফিগার আছে কিনা, না থাকলে ঠিক করো।

বর্তমান হার্ডেনিংকে কাঙ্ক্ষিতটির (যা তোমার কনফিগারেশন সংজ্ঞায়িত করে) সাথে তুলনা করো:

terminal
$ sudo imaxe ssh harden show

পার্থক্য আছে? YAML থেকে হার্ডেনিং পুনরায় প্রয়োগ করো এবং নিরাপদভাবে sshd রিলোড করো:

terminal
$ sudo imaxe ssh harden reapply
কনফিগারেশন কাঙ্ক্ষিত অবস্থায় ফিরে আসে (SSH দিয়ে root ছাড়া, পাসওয়ার্ড ছাড়া, শুধু পাবলিক কী) এবং sshd তোমার সেশন না কেটে রিলোড হয়।
5

সেশন দেখা ও sshd পুনরায় চালু

কে সংযুক্ত আছে দেখো এবং বাইরে থেকে যাওয়ার ভয় ছাড়াই পরিবর্তন প্রয়োগ করো।

এই মুহূর্তে সক্রিয় SSH সেশনগুলোর তালিকা দেখো:

terminal
$ sudo imaxe ssh sessions

কনফিগারেশনের পরিবর্তন প্রয়োগ করতে reload ব্যবহার করাই ভালো (এটি সংযোগ কাটে না); সম্পূর্ণ পুনরায় চালু করা দরকার হলেই কেবল restart ব্যবহার করো। দুটোই আগে কনফিগারেশন যাচাই করে:

terminal
$ sudo imaxe ssh reload
$ sudo imaxe ssh restart
কনফিগারেশন অবৈধ হলে প্রয়োগের আগেই অপারেশন থেমে যায় — তোমার অ্যাক্সেস অক্ষত থাকে।
বাইরে আটকে যাওয়া থেকে সাবধান

sshd পুনরায় চালু করার বা পোর্ট বদলানোর আগে একটি দ্বিতীয় জরুরি সেশন খোলা রাখো। hostkeys regenerate-এর পর পুনঃসংযোগের সময় ভিন্ন host key-এর সতর্কবার্তা এলে সেটি প্রত্যাশিত: নতুন পরিচয়টি গ্রহণ করো।

CLI রেফারেন্সকমান্ড, ফ্ল্যাগ ও ফাইল

সারসংক্ষেপ #

uso
imaxe ssh <subcomando> [<subcomando-anidado>] [argumentos] [flags]

যে অপারেশনগুলো sshd, অনুমোদিত কী বা হোস্ট কী পড়ে বা পরিবর্তন করে সেগুলোর root অধিকার প্রয়োজন (sudo ব্যবহার করো)। keys, hostkeys এবং harden গ্রুপগুলো তাদের নিজস্ব নেস্টেড সাবকমান্ড একত্র করে। scripting-এর উপযোগী আউটপুট পেতে status, sessions, keys list বা harden show-এ --json যোগ করো।

সাবকমান্ড #

সাবকমান্ডকী করেপ্রাসঙ্গিক ফ্ল্যাগ
statussshd-এর অবস্থা: সক্রিয়, পোর্ট এবং হার্ডেনিংয়ের সারসংক্ষেপ।--json
keys listপরিচালিত ব্যবহারকারীর অনুমোদিত কীগুলোর তালিকা দেখায়।--user, --json
keys addএকটি পাবলিক কী যোগ করে (আর্গুমেন্ট বা stdin থেকে)।--user, --comment
keys removefingerprint বা মন্তব্য দিয়ে একটি কী সরিয়ে দেয়।--user
hostkeys regenerateহোস্ট কী পুনরায় তৈরি করে (AMI ক্লোন করার পর জরুরি; fingerprint বদলায়)।--yes
sessionsসক্রিয় SSH সেশনগুলোর তালিকা দেখায়।--json
harden showবর্তমান হার্ডেনিংকে কাঙ্ক্ষিতটির সাথে দেখায়।--json
harden reapplyYAML থেকে হার্ডেনিং পুনরায় প্রয়োগ করে এবং sshd রিলোড করে।
restartআগে কনফিগারেশন যাচাই করে sshd পুনরায় চালু করে (sshd -t)।
reloadআগে কনফিগারেশন যাচাই করে sshd রিলোড করে (sshd -t)।

আর্গুমেন্ট ও ফ্ল্যাগ #

আর্গুমেন্ট / ফ্ল্যাগধরনডিফল্টবিবরণ
<clave> আবশ্যকstringkeys add-এ: পাবলিক কী, অথবা stdin থেকে পড়তে -
<selector> আবশ্যকstringkeys remove-এ: সরানো কীটির fingerprint (SHA256:...) বা মন্তব্য।
--userstringubuntuযে ব্যবহারকারীর authorized_keys দেখা বা পরিবর্তন করা হয় (keys list/add/remove-এ)।
--commentstringkeys add-এ: পরে চিহ্নিত করার জন্য কীটির সাথে যুক্ত মন্তব্য।
--yesboolfalsehostkeys regenerate-এ: জিজ্ঞাসা না করেই নিশ্চিত করে (ক্লায়েন্টদের কাছে দৃশ্যমান fingerprint বদলায়)।
--jsonboolfalsestatus, sessions, keys list এবং harden show-এ: ফলাফল stdout-এ JSON হিসেবে দেয়।

ফাইল ও পাথ #

পাথবিষয়বস্তু
/etc/imaxe/ssh.ymlমডিউলের কনফিগারেশন: পোর্ট, লগইন নীতি (root, পাসওয়ার্ড, পাবলিক কী), অনুমোদিত ব্যবহারকারী, পরিচালিত ব্যবহারকারী এবং হোস্ট কী পুনরায় তৈরি।
/home/<usuario>/.ssh/authorized_keysপরিচালিত ব্যবহারকারীর অনুমোদিত পাবলিক কী যা keys add/remove পরিবর্তন করে।
/etc/ssh/sshd_config.d/sshd-এর কনফিগারেশন খণ্ড যেখানে হার্ডেনিং প্রয়োগ করা হয়।
/etc/ssh/ssh_host_*_keyযে হোস্ট কী সার্ভারকে চিহ্নিত করে এবং hostkeys regenerate নবায়ন করে।

ssh.yml-এর উদাহরণ:

/etc/imaxe/ssh.yml
port: 22
permit_root_login: "no"
password_authentication: "no"
pubkey_authentication: "yes"
allow_users: []
managed_user: ubuntu
hostkeys:
  regenerate_on_first_boot: true

এক্সিট কোড ও লগ #

প্রতিটি সম্পাদন একটি কোড ফেরত দেয় যা তুমি echo $? দিয়ে যাচাই করতে পারো — স্ক্রিপ্টে চেইন করতে কাজে লাগে:

0OKঅপারেশন সঠিকভাবে সম্পন্ন হয়েছে।
1ERRশ্রেণীবিহীন সাধারণ ত্রুটি। লগ পরীক্ষা করো।
2USAGEঅবৈধ বা অনুপস্থিত আর্গুমেন্ট।
3CONFIGsshd -t-এর যাচাই ব্যর্থ হয়েছে; কিছুই প্রয়োগ হয়নি।
4NOTFOUNDকী বা ব্যবহারকারী পাওয়া যায়নি।
5RELOADপরিবর্তন প্রয়োগ হয়েছে কিন্তু sshd রিলোড ব্যর্থ হয়েছে।

ডিবাগ করার সময় সার্ভিসের লগ সরাসরি অনুসরণ করো:

terminal
$ sudo journalctl -u ssh -f
$ sudo imaxe ssh harden show --json

সমস্যা সমাধান #

লক্ষণসম্ভাব্য কারণসমাধান
CONFIG আসে (কোড 3)হার্ডেনিং বা একটি হাতে করা পরিবর্তন sshd-কে অবৈধ কনফিগারেশনে রেখেছে।imaxe ssh harden show দিয়ে diff পর্যালোচনা করে ঠিক করো; যাচাই একটি ভাঙা কনফিগ প্রয়োগ হওয়া রোধ করে।
পুনঃসংযোগে ভিন্ন host key-এর সতর্কবার্তাহোস্ট কী পুনরায় তৈরি হয়েছে (AMI ক্লোন করার পর প্রত্যাশিত)।এটি স্বাভাবিক: ক্লায়েন্টে নতুন পরিচয়টি গ্রহণ করো এবং তোমার known_hosts হালনাগাদ করো।
keys add NOTFOUND ফেরত দেয় (কোড 4)--user-এ উল্লিখিত ব্যবহারকারী সিস্টেমে নেই।ব্যবহারকারীর নাম যাচাই করো অথবা ডিফল্ট পরিচালিত ব্যবহারকারী (ubuntu) ব্যবহার করো।
আর পাসওয়ার্ড দিয়ে ঢুকতে পারছি নাহার্ডেনিংয়ের কারণে password_authentication "no"-তে আছে।এটি ইচ্ছাকৃত: পাবলিক কী দিয়ে ঢোকো এবং imaxe ssh keys দিয়ে সেগুলো পরিচালনা করো।

SSH মডিউল নিয়ে আটকে গেছেন?

«imaxe <module> status --json» এর আউটপুট সহ আমাদের লিখুন, আমরা দ্রুত উত্তর দেব।

সাপোর্টে যোগাযোগ করুন