উত্তর:
না। এটি "অনুমোদিত" কমান্ড নয়, "জোর করে" কমান্ড ( ফোর্সকম্যান্ড বিকল্প হিসাবে )।
একমাত্র সম্ভাবনা হ'ল বিভিন্ন কমান্ডের জন্য বিভিন্ন কী ব্যবহার করা বা এর থেকে প্যারামিটারগুলি পড়া stdin
।
প্রতি কিতে আপনার কেবল একটি কমান্ড থাকতে পারে, কারণ কমান্ডটি "জোরপূর্বক"।
তবে আপনি একটি র্যাপার স্ক্রিপ্ট ব্যবহার করতে পারেন। ডাকা কমান্ডটি পরিবেশের পরিবর্তনশীল হিসাবে মূল কমান্ড লাইন পায় $SSH_ORIGINAL_COMMAND
যা এটি মূল্যায়ন করতে পারে।
যেমন এটি এতে রাখুন ~/.ssh/allowed-commands.sh
:
#!/bin/sh
#
# You can have only one forced command in ~/.ssh/authorized_keys. Use this
# wrapper to allow several commands.
case "$SSH_ORIGINAL_COMMAND" in
"systemctl restart cups")
systemctl restart cups
;;
"shutdown -r now")
shutdown -r now
;;
*)
echo "Access denied"
exit 1
;;
esac
তারপর এটা রেফারেন্স ~/.ssh/authorized_keys
সঙ্গে
command="/home/user/.ssh/allowed-commands.sh",…
গ্রেট এসএসএইচ, দ্য সিকিউর শেল: ও'রিলির ডিফিনিটিভ গাইড বই, অধ্যায় আট এ, নীচের মতো স্ক্রিপ্ট ব্যবহার করে একটি দুর্দান্ত উদাহরণ দেওয়া হয়েছে:
#!/bin/sh
/bin/echo "Welcome!
Your choices are:
1 See today's date
2 See who's logged in
3 See current processes
q Quit"
/bin/echo "Your choice:"
read ans
while [ "$ans" != "q" ]
do
case "$ans" in
1)
/bin/date
;;
2)
/usr/bin/who
;;
3)
/usr/bin/top
;;
q)
/bin/echo "Goodbye"
exit 0
;;
*)
/bin/echo "Invalid choice '$ans': please try again"
;;
esac
/bin/echo "Your choice:"
read ans
done
exit 0
আপনার .authorized_keys
ফাইলে এটি ব্যবহার করে যেমন:
command="/path/to/your/script.sh" <ssh-key>
... এটি করার সময় আপনাকে এটি দেয় ssh
:
Welcome!
Your choices are:
1 See today's date
2 See who's logged in
3 See current processes
q Quit
Your choice:
scp
, sftp
এবং সমস্ত অন্যান্য জিনিস নিয়ে আপনি কিছু দিন লাগতে পারে।
command
সাধারণভাবে বিকল্পটির জন্য বৈধ নয় কি ?
অন্যান্য পদ্ধতির উদাহরণস্বরূপ প্রদত্ত ব্যবহারকারীর জন্য একটি সীমাবদ্ধ শেল ব্যবহার করুন বা একটি মোড়ক ব্যবহার করুন যা নির্দিষ্ট ডিরেক্টরিতে পাওয়া ফাইল / স্ক্রিপ্টগুলিতে কমান্ডগুলিকে সংযত করে, এইভাবে মোড়ক পরিবর্তন না করে কমান্ডের তালিকা বাড়িয়ে তোলে।
অন্য একটি নিবন্ধ জেনেরিক স্ক্রিপ্ট বর্ণনা করেছে, যা অনুমোদিত কমান্ডগুলিতে কমান্ড লাইন আর্গুমেন্টের অনুমতি দেয়, তবে নিয়মিত প্রকাশ হিসাবে প্রকাশিত বিধি দ্বারা এগুলি লক করতে দেয়।
এই উদাহরণটি নিম্নলিখিত উপায়ে প্রকাশ করা হবে:
command="only systemctl shutdown"
এবং .onlyrules
এই বিষয়বস্তু দিয়ে একটি ফাইল তৈরি করা হবে:
\:^systemctl restart cups$:{p;q}
\:^shutdown -r now$:{p;q}
এই 'কেবল' পদ্ধতির সুবিধাটি হ'ল প্রতিটি ব্যবহারকারীর এবং পরিস্থিতির জন্য স্বতন্ত্র স্ক্রিপ্টগুলি লেখার দরকার নেই।
ForcedCommand
SSH_ORIGINAL_COMMAND
(প্রতিman sshd
) যাতে এটি স্ক্রিপ্টগুলিতে উপলব্ধ। এছাড়াও স্বয়ংক্রিয় স্ক্রিপ্টগুলির একটি উদাহরণ দেওয়া যা নির্দিষ্ট নিদর্শনগুলিSSH_ORIGINAL_COMMAND
চালানোর অনুমতি দেয় । এছাড়াও unixwars.blogspot.com/2014/12/getting-sshoriginalcommand.html