চার বছর পরে এই উত্তরটি আপডেটের যোগ্য। প্রাথমিকভাবে আমি authorized_keys
নিজেকে ব্যবহার করেছি এবং সম্ভবত এটি কয়েকটি নির্বাচিত ক্ষেত্রে এখনও ব্যবহার করব, আপনি কেন্দ্রীয় sshd_config
সার্ভার কনফিগারেশন ফাইলটিও ব্যবহার করতে পারেন ।
sshd_config
আপনি (আপনার নির্দিষ্ট ব্যবহারের ক্ষেত্রে) একটি গোষ্ঠী, যেমন proxy-only
বা Match
স্বতন্ত্র ব্যবহারকারী হিসাবে মনোনীত করতে পারেন । ইন sshd_config
। এটি গ্লোবাল সেটিংসের পরে এবং বিশ্বব্যাপী সেটিংসে প্রদত্ত কিছু সেটিংস প্রত্যাহার, পুনরাবৃত্তি বা সংশোধন করার পরে এটি করা হয়।
দ্রষ্টব্য: ব্যবহৃত সিনট্যাক্স / নির্দেশাবলীর কয়েকটি পৃষ্ঠায় sshd_config(5)
নথিভুক্ত করা হয়েছে । বিশেষত PATTERNS বিভাগটি পড়ার বিষয়টি নিশ্চিত করুন ।man
ssh_config(5)
ssh_config(5)
একটি গোষ্ঠীর পক্ষে এর অর্থ এটি আপনার Match
ব্লকটি শুরু হবে:
Match group proxy-only
আপনি Match
নিম্নোক্ত মানদণ্ডের: User
, Group
, Host
, LocalAddress
, LocalPort
এবং Address
। বেশ কয়েকটি মানদণ্ডের সাথে মেলে যাচাইয়ের জন্য মাপদণ্ড-প্যাটার্ন জোড়া ( group proxy-only
উপরে) কমা-পৃথক করুন ।
এই জাতীয় ব্লকের অভ্যন্তরে, যা vতিহ্যগতভাবে সংক্ষিপ্ত আকারের জন্য যুক্ত হয় (তবে প্রয়োজন হয় না), আপনি তখন authorized_keys
সেই গোষ্ঠীর সদস্যদের জন্য প্রতিটি ফাইল সম্পাদনা না করে আপনি ব্যবহারকারী গোষ্ঠীর জন্য যে সেটিংস প্রয়োগ করতে চান তা ঘোষণা করতে পারেন ।
no-pty
থেকে সেটিং authorized_keys
একটি দ্বারা প্রতিফলিত হবে PermitTTY no
সেটিং এবং command="/sbin/nologin"
হয়ে যাবে ForceCommand /sbin/nologin
।
অতিরিক্ত হিসাবে আপনি কোনও প্রশাসকের প্যারানোইয়াকে সন্তুষ্ট করতে আরও সেটিংস সেট করতে পারেন যেমন chroot
ব্যবহারকারীকে তার বাড়ির ফোল্ডারে রাখুন এবং এরকম কিছু দিয়ে শেষ করতে পারেন:
Match group proxy-only
PermitTTY no
ForceCommand /sbin/nologin
ChrootDirectory %h
# Optionally enable these by un-commenting the needed line
# AllowTcpForwarding no
# GatewayPorts yes
# KbdInteractiveAuthentication no
# PasswordAuthentication no
# PubkeyAuthentication yes
# PermitRootLogin no
(আপনার প্রয়োজন কিনা মন্তব্য করা লাইনগুলি এবং প্রয়োজন হিসাবে অসুবিধা প্রয়োজন কিনা তা পরীক্ষা করুন)
%h
একটি টোকেন যে ব্যবহারকারীর হোম ডিরেক্টরি দ্বারা প্রতিস্থাপিত হয় (হয় %u
ব্যবহারকারী নাম এবং উত্পাদ হবে %%
একটি শতাংশ চিহ্ন)। আমি ChrootDirectory
আমার sftp-only
ব্যবহারকারীদের সীমাবদ্ধ রাখতে বিশেষভাবে দরকারী বলে মনে করেছি :
Match group sftp-only
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory %h
ForceCommand internal-sftp
PasswordAuthentication no
দয়া করে মনে রাখবেন যে কোনও নির্দিষ্ট নির্দেশিকা একটি Match
ব্লকে ব্যবহার করা যেতে পারে । পরামর্শ man
পৃষ্ঠা sshd_config(5)
বিবরণ (অনুসন্ধান জন্য Match
)।
authorized_keys -র
এনবি: এই মন্তব্যের নীচের অংশটি ছিল আমার আসল উত্তর। এদিকে - তবে এটি আপনার সঠিক sshd
সংস্করণের বৈশিষ্ট্যগুলির উপরও নির্ভর করে - বেশিরভাগ ক্ষেত্রে উপরে বর্ণিত পদ্ধতিটির জন্য আমি যেতে চাই।
হ্যাঁ আপনি যেমন সরকারী কী বরাদ্দ করতে পারেন তত সূক্ষ্মভাবে তৈরি করতে পারেন। আজাদেকন দ্বারা প্রস্তাবিত নোলগিন ছাড়াও, আমি কী কী প্রবেশের সামনে নিম্নলিখিতটি সেট করার পরামর্শ দেব authorized_keys
:
no-pty ssh-rsa ...
কোনও pty সার্ভার-সাইডকে বলে যে কোনও কী সিউডো-টার্মিনাল সেই কীটির জন্য বরাদ্দ করা উচিত নয়।
আপনি এটিকে প্রিপেন্ড করে কোনও নির্দিষ্ট কী এর জন্য নোলগিনের মতো কিছু কার্যকর করতে বাধ্য করতে পারেন:
command="/sbin/nologin",no-pty ssh-rsa ...
no-pty
একা কী ব্যবহারকারীর কমান্ড কার্যকর করতে বাধা দেয় না। Superuser.com/q/1230979/195460 দেখুন ।