প্রশ্ন একটি সাধারণ ব্যবহারকারী হিসাবে sshd চালানো সম্ভব?


আমি একটি দ্বিতীয় শুরু করতে লক্ষ্য করছি sshd আমার নিজস্ব কনফিগারেশন ফাইল সহ একটি অ বিশেষাধিকারী পোর্টের উদাহরণ (উদাঃ 22২২)।

অবশ্যই, দী sshd প্রক্রিয়া করতে পারেন না setuid তাই চলমান যারা ছাড়া অন্য ব্যবহারকারী হিসাবে লগ ইন sshd ডেমন স্পষ্টভাবে অসম্ভব।

তবে, এটি একটি কাজ করা সম্ভব sshd বর্তমানে চলমান ব্যবহারকারীর জন্য কাজ করবে ডেমন? আমার ব্যবহারের ক্ষেত্রে, এই জরিমানা হবে।

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

$ /usr/sbin/sshd -dD -h .ssh/id_rsa -p 2222 
debug1: sshd version OpenSSH_5.6p1
debug1: read PEM private key done: type RSA
debug1: private host key: #0 type 1 RSA
debug1: setgroups() failed: Operation not permitted
debug1: rexec_argv[0]='/usr/sbin/sshd'
debug1: rexec_argv[1]='-dD'
debug1: rexec_argv[2]='-h'
debug1: rexec_argv[3]='.ssh/id_rsa'
debug1: rexec_argv[4]='-p'
debug1: rexec_argv[5]='2222'
debug1: Bind to port 2222 on 0.0.0.0.
Server listening on 0.0.0.0 port 2222.
debug1: Bind to port 2222 on ::.
Server listening on :: port 2222.
debug1: fd 6 clearing O_NONBLOCK
debug1: Server will not fork when running in debugging mode.
debug1: rexec start in 6 out 6 newsock 6 pipe -1 sock 9
debug1: inetd sockets after dupping: 5, 5
Connection from ::1 port 57670
debug1: Client protocol version 2.0; client software version OpenSSH_5.6
debug1: match: OpenSSH_5.6 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.6
debug1: list_hostkey_types: 
No supported key exchange algorithms
debug1: do_cleanup
debug1: do_cleanup
debug1: audit_event: unhandled event 12

দ্য debug1: setgroups() failed: Operation not permitted লাইন স্পষ্টভাবে লাঠি আউট, কিন্তু এটি একটি সংযোগ গ্রহণ করার চেষ্টা না হওয়া পর্যন্ত এটি মরা না।


33
2017-12-27 03:26


উত্স




উত্তর:


প্রায় digging একটি বিট পরে আমি এটা figured।

সঙ্গে প্রক্রিয়া শুরু করুন sshd -f ~/.ssh/sshd_config কোথায় /.ssh/sshd_config আপনি তৈরি একটি নতুন ফাইল। অন্যান্য বিকল্পগুলির মধ্যে (যেমন একটি ভিন্ন হোস্ট কী, বিভিন্ন পোর্ট, ইত্যাদি) আপনাকে লাইন যুক্ত করতে হবে UsePrivilegeSeparation no। এই প্রতিরোধ করা হবে sshd যে কোনো চেষ্টা করার চেষ্টা থেকে প্রক্রিয়া setuid অথবা setgid কল করুন এবং এটি আপনার ব্যবহারকারী হিসাবে চলমান অবিরত এবং আপনার ব্যবহারকারী হিসাবে সংযোগ গ্রহণ করতে অনুমতি দেয়।

সম্পাদন করুন: অন্য কাউকে খুঁজে বের করার কয়েক মিনিট পরে এই লিঙ্কটি আমার কাছে টুইট করেছে যা নিশ্চিত করে এটি করার সঠিক উপায়: http://cygwin.com/ml/cygwin/2008-04/msg00363.html


31
2017-12-27 04:03



আপনি সেটিং দ্বারা PAM অক্ষম করতে হবে UsePam থেকে no। - haridsv
@ বিজানেস এটা আপনার জন্য কাজ করে? আপনি আপনার sshd_config ফাইল শেয়ার করতে পারেন? অভিযোগ করে "সেট" আমার জন্য একটি বৈধ কমান্ড নয় যখন আমি উবুন্টুতে চেষ্টা করি। - jojo
@jojo আমি এই কনফিগারেশনটি চালাই না তাই আমার ভাগ করার জন্য কোনও ফাইল নেই। আপনি একটি পরিচিত কাজ ফাইল দিয়ে শুরু এবং আপনার প্রয়োজন সমন্বয় করতে যাচ্ছি। - Bo Jeanes
নিষ্ক্রিয় PAM জিনিস শুধুমাত্র নির্দিষ্ট ক্ষেত্রে জন্য। পাম সেটিংসের সাথে মেসেজ ছাড়া Fedora এ আমার জন্য কাজ করে। আরও কিছু ধারণাগুলির জন্য উত্তরটিতে লিঙ্কযুক্ত ইমেল বার্তাটি দেখুন যা সবকিছুর জন্য সুন্দর কিছু পরিবর্তন করতে হবে। আমি শীঘ্রই আমার নোটগুলি আপডেট করব কিভাবে আমি ডকারের জন্য এটি তৈরি করেছি: hub.docker.com/r/aosqe/ssh-git-server (অনুগ্রহ করে এটি পড়ার কয়েক দিনের আগে অনুগ্রহ করে অনুমতি দিন) - akostadinov


এই থ্রেডে একটি আপডেট হিসাবে, সংস্করণ 7.5-এ OpenSSH UsePrivilegeSeparation বিকল্পটি অব্যবহৃত করেছে, বিশেষাধিকার বিচ্ছেদ নিষ্ক্রিয় করা অসম্ভব করে তোলে। মনে হচ্ছে যে ব্যবহারকারী হিসাবে SSHD চলমান এখন অসম্ভব।

দেখ https://www.openssh.com/releasenotes.html


3
2017-07-12 20:17



সার্ভার কনফিগারেশন উপর নির্ভর করে, এই ক্ষেত্রে হতে পারে না। আমার sshd কনফিগারেশন ফাইলে "UsePrivilegeSeparation Yes" বা "UsePrivilegeSeparation Sandbox" নির্দেশ করার সময় আমি একটি সাধারণ ব্যবহারকারী হিসাবে sshd চলমান কোন সমস্যা নেই। - a3nm


আমি একটি সাধারণ ব্যবহারকারী হিসাবে sshd সেবা চলমান সম্ভাবনা বিস্তারিতভাবে চেক করেছেন। প্রোগ্রাম এর সংস্করণ বিস্তারিত:

sshd সংস্করণ OpenSSH_7.4, OpenSSL 1.0.2k

অবশেষে অনেক ত্রুটি সমাধান করার পর, আমি এমন একটি বিন্দুতে পৌঁছলাম যে SSHD নিম্নলিখিত ত্রুটির সাথে বাতিল হয়েছে:

নন-রুট ব্যবহারকারীর দ্বারা লগইন রেকর্ড লিখার প্রচেষ্টা (বাতিল করা)

আমি সোর্স কোডটি পরিবর্তন না করেই সমস্যা সমাধান করতে পারি কিনা তা দেখার জন্য সোর্স কোডটি চেক করেছি। কোড দেখুন এখানে। কোডের কিছু অংশ প্রোগ্রামের গর্ভপাত ঘটায়:

#ifndef HAVE_CYGWIN
    if (geteuid() != 0) {
        logit("Attempt to write login records by non-root user (aborting)");
        return (1);
    }
#endif

এটি দ্বারা ব্যবহারকারী বিশেষাধিকার পরীক্ষা করে (geteuid() != 0) এবং এখানে সমস্যা কারণ।


1
2018-02-22 18:42





ম্যাগিক্লানটারন কি উল্লেখ করেছে তা অনুমান করা উপরে এবং অনুমান আপনি প্যাচ করতে চান না sshd কিছু ভালো হবে Dropbear আপনার জন্য কাজ? এটি অনেকগুলি এমবেডেড ডিভাইসে ব্যবহৃত হয় যা ছোট পদাঙ্ক (এবং কম বৈশিষ্ট্য / কনফিগ) সহ একটি এসএসএস সার্ভার চান।


0
2018-05-10 22:55