ব্যবহারকারীর সম্পূর্ণ লগইন অ্যাক্সেস না দিয়ে কীভাবে আমি একক কমান্ডের অনুমতি দিতে এসএসএইচডি কনফিগার করব?


11

আমি এসএসএইচ থেকে রিমোট কমান্ড কল করার সর্বোত্তম উপায় খুঁজছি। আমি ব্যবহারকারী 'rpcall' তৈরি করি, নতুন শংসাপত্র তৈরি করি এবং অনুমোদিত_কিগুলি পূরণ করি। এটি দিয়ে আরও কিছুটা সুরক্ষিত করুন

from="ip",no-agent-forwarding,no-X11-forwarding,no-port-forwarding,no-pty ssh-rsa ......

এখন ব্যবহারকারী আরপিকেল টার্মিনালে লগইন করতে পারবেন না

ssh -l rpc 192.168.12.1
PTY allocation request failed on channel 0

তবে কোনও কমান্ড চালানো সম্ভব

ssh -l rpc 192.168.12.1 cat /etc/passwd

কমান্ড এক্সিকিউশন কেবলমাত্র একটি প্রসেসিং স্ক্রিপ্টের মধ্যে সীমাবদ্ধ করতে পারার কোনও সমাধান আছে? উদাহরণস্বরূপ /home/rpcall/bin/command.sh

আমি এই ব্যবহারকারীর জন্য বাশ শেল সেটআপ করেছি এবং .brcrc ফোর্স রান প্রসেসিং স্ক্রিপ্ট ব্যবহার করে, তবে ssh কল থেকে পরামিতিগুলি কীভাবে পাস করতে হয় তা আমি জানি না।

.bashrc ব্যবহারকারীর জন্য rpcall

/home/rpcall/bin/command.sh $params1 $params2
exit

অন্যান্য মেশিন থেকে এসএসএস কল

ssh -l rpcall 192.168.12.1 "param1" "param2"

উত্তর:


19

আপনি অনুমোদিত_কিগুলি ফাইল ব্যবহার করে আদেশগুলি সীমাবদ্ধ করতে পারেন। command="/home/rpcall/bin/command.sh"কী-এর আগে অনুমোদিত_কি-কি ফাইলের মধ্যে রাখুন এবং তারা সংযোগ স্থাপন করলে ব্যবহারকারী কেবল সেই আদেশটি চালাবেন run

অনুমোদিত_কিজের জন্য ম্যান পৃষ্ঠাটি পরীক্ষা করুন, এটি সেই ম্যান পৃষ্ঠা থেকে,

 command="command"
         Specifies that the command is executed whenever this key is used
         for authentication.  The command supplied by the user (if any) is
         ignored.  The command is run on a pty if the client requests a
         pty; otherwise it is run without a tty.  If an 8-bit clean chan-
         nel is required, one must not request a pty or should specify
         no-pty.  A quote may be included in the command by quoting it
         with a backslash.  This option might be useful to restrict cer-
         tain public keys to perform just a specific operation.  An exam-
         ple might be a key that permits remote backups but nothing else.
         Note that the client may specify TCP and/or X11 forwarding unless
         they are explicitly prohibited.  The command originally supplied
         by the client is available in the SSH_ORIGINAL_COMMAND environ-
         ment variable.  Note that this option applies to shell, command
         or subsystem execution.

আপনার যদি একাধিক কমান্ডের প্রয়োজন হয় তবে আপনাকে মূলত বিভিন্ন কি কি সেট আপ করতে হবে এবং বিভিন্ন কমান্ড দেওয়ার জন্য বিভিন্ন কী ব্যবহার করতে হবে।

সম্পাদনা: আমি সবেমাত্র লক্ষ্য করেছি যে, আসল কমান্ডটি SSH_ORIGINAL_COMMANDপরিবেশের ভেরিয়েবলে উপলভ্য , সুতরাং আপনি সত্যই কিছু চালাক করে নিজের স্ক্রিপ্ট ব্যবহার করে সেই ইনপুটটি পরিচালনা করতে পারেন।


4
নির্দিষ্ট কমান্ড SSH_ORIGINAL_COMMANDপরিবেশ পরিবর্তনশীল মাধ্যমে পরামিতি অ্যাক্সেস করতে সক্ষম । এই কমান্ডে প্যারামিটারগুলি পাস করা যেতে পারে, এটির জন্য কেবল সেই পরিবেশের পরিবর্তনশীলকে পার্স করা এবং অনুরোধকৃত কাজটি করা দরকার।
অলিভার

হ্যাঁ, কয়েক মিনিট আগে উত্তরটি আপডেট করেছিলাম যখন আমি এটিও লক্ষ্য করেছি।
এইটবিটটনি

কমান্ড বিকল্প এবং SSH_ORIGINAL_COMMAND সহ সঠিক সমাধান, আমার ঠিক কী প্রয়োজন exactly আপনাকে ধন্যবাদ আইটবিটটনি এবং অলিভার!
অ্যান্ড্রু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.