উত্তর:
হ্যাঁ, কেবল /bin/false
শেল হিসাবে ব্যবহার করুন এবং কোনও রিমোট কমান্ড (অর্থাত্ -N
ওএসএসএইচের পতাকা) ব্যবহার না করেই সুড়ঙ্গ এসএসএইচ প্রক্রিয়া শুরু করার জন্য ব্যবহারকারীকে নির্দেশ দিন :
ssh -N -L 1234:target-host:5678 ssh-host
/bin/false
শেল হিসাবে থাকে তবে আপনার শেল অ্যাক্সেস পাবেন না, কারণ প্রতিটি লগইন সেশনটি তত্ক্ষণাত বন্ধ হয়ে যাবে।
ব্যবহারকারীর .ssh / अधिकृत_keys ফাইলে নীচের মতো কিছু রাখুন:
permitopen="192.168.1.10:3306",permitopen="10.0.0.16:80",no-pty ssh-rsa AAAAB3N...
সুতরাং, মূলত, আপনি নিয়ন্ত্রণগুলি কোনও স্পেস দ্বারা পৃথক করে ব্যবহারকারীর ssh পাবলিক কী এর সামনে থাকবেন। উদাহরণস্বরূপ, নির্দিষ্ট পাবলিক কী ব্যবহার করে সংযোগগুলিকে কেবল 192.168.1.10 এর মাইএসকিউএল সার্ভার এবং 10.0.0.16 এর ওয়েব সার্ভারে এসএসএইচ পোর্ট ফরওয়ার্ডিং করার অনুমতি দেওয়া হবে এবং শেল (নো-পিটিআই) বরাদ্দ দেওয়া হবে না। আপনি বিশেষত "নো-পিটিআই" বিকল্পের বিষয়ে জিজ্ঞাসা করছেন, তবে ব্যবহারকারীরা কেবল নির্দিষ্ট সার্ভারগুলিতে টানেল রাখার কথা বিবেচনা করলে অন্যগুলিও কার্যকর হতে পারে।
অনুমোদিত_কাইজ ফাইলের আরও বিকল্পের জন্য sshd এর ম্যান পৃষ্ঠাটি দেখুন ।
মনে রাখবেন যে ব্যবহারকারীর অভিজ্ঞতাটি কিছুটা অদ্ভুত দেখাচ্ছে: তারা যখন প্রবেশ করবে তখন মনে হবে সেশনটি ঝুলছে (কারণ তারা কোনও অর্থ পাচ্ছে না)। ঠিক আছে. ব্যবহারকারী যদি উদাহরণস্বরূপ, "-L3306: 192.168.1.10: 3306" এর সাথে পোর্ট ফরওয়ার্ডিং নির্দিষ্ট করে থাকেন তবে পোর্ট ফরওয়ার্ডিং কার্যকর হবে।
যা-ই হোক না কেন, চেষ্টা করে দেখুন।
no-pty
শেল অ্যাক্সেস প্রতিরোধ করে না, এটি শেলটিকে একটি pty দেয় না। এটি প্রম্পটটি প্রদর্শন করে না (অর্থাত্ "হ্যাং হয়ে দেখা দেয়"), তবে আপনি এখনও ঠিক কমান্ড দিতে পারেন। আপনি যদি সেখান থেকে শেল অ্যাক্সেস সীমাবদ্ধ করতে চান তবে আপনার command="..."
বিকল্পটি দরকার .ssh/authorized_keys
।
ব্যবহারকারীর এমন একটি শেল দিন যা কেবল তাদের যেমন লগ আউট করার অনুমতি দেয় /bin/press_to_exit.sh
#! / বিন / ব্যাশ পড়ুন -n 1 -p "প্রস্থান করতে কোনও কী টিপুন" কী
এইভাবে তিনি টানেলগুলি সক্রিয় রেখে, যতক্ষণ চাইছেন ততক্ষণ লগইন করতে পারবেন, তবে কোনও আদেশ না চালাবেন। Ctrl-c
সংযোগ বন্ধ করে দেয়।
এমন একটি শেল বরাদ্দ করুন যা ব্যবহারকারীকে লগ ইন করতে না দেয়।
যেমন
#!/bin/sh
echo "No interactive login available."
sleep 60
exit 0
তাদের শেল প্রম্পট পেতে বাধা দেয় এবং তাদের 60 সেকেন্ডের সময়সীমা দেয় - যদি 60 সেকেন্ডের জন্য কোনও সংযোগ সক্রিয় না হয় তবে এটি প্রস্থান করবে এবং এর ফলে সেগুলি সম্পূর্ণরূপে সংযোগ বিচ্ছিন্ন হয়ে যাবে (প্রয়োজনীয়তা অনুসারে সংখ্যাটি বাড়িয়ে তুলুন)।
তারা কোনও রিমোট কমান্ড কার্যকর করতে পারে না, কারণ শেলটি তাদের অনুমতি দেয় না।
logout
একটি সাধারণ ক্ষেত্রে " " এর মতোই প্রভাব ফেলবে ।
/sbin/nologin
, যা আপনি ব্যবহারকারী-বান্ধব বার্তার সাথে কাস্টমাইজ করতে পারেন /etc/nologin.txt
।
আমার সমাধান, ব্যবহারকারী যারা শুধুমাত্র টানেলিং হতে পারে প্রদান করা হয় একটি ইন্টারেক্টিভ শেল ছাড়া , যে শেল সেট করতে / etc / passwd করতে , / usr / বিন / tunnel_shell ।
কেবল অসীম লুপের সাথে এক্সিকিউটেবল ফাইল / usr / বিন / টানেল_শেল তৈরি করুন ।
অতিরিক্তভাবে AllowGroups
এবং Match Group
বিকল্পটি ব্যবহার করুন ।
সম্পূর্ণরূপে এখানে ব্যাখ্যা করা হয়েছে: http://blog.flowl.info/2011/ssh-tunnel-group-only-and-no- Shell-p कृपया/
-N
তবে তাদের শেল অ্যাক্সেস রয়েছে। এটি সত্যই সমস্যার সমাধান করে না এবং বিপজ্জনক।