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


39

আমি sshdআমার নিজের কনফিগারেশন ফাইলটি দিয়ে একটি অন-সুবিধাযুক্ত পোর্টে (যেমন 2222) দ্বিতীয় বার শুরু করার লক্ষ্য রাখছি ।

স্পষ্টতই, 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লাইন স্পষ্টত লাঠি আউট, কিন্তু এই সময়ের একটি সংযোগ স্বীকার করার চেষ্টা করে এটি মারা যায় না।

উত্তর:


35

কিছুটা খনন করার পরে আমি এটি বের করে ফেললাম।

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

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


1
আপনাকে সেট UsePamকরে পিএএম অক্ষম করতে হবে no
haridsv

@ বিজনেস এটি কি আপনার জন্য কাজ করে? আপনি কি আপনার sshd_config ফাইলটি ভাগ করতে পারবেন? এটি অভিযোগ করে যে "উবুন্টুতে চেষ্টা করার পরে" সেট "আমার পক্ষে বৈধ আদেশ নয়।
জোজো

@ জোজো আমি এই কনফিগারেশনটি চালাচ্ছি না তাই আমার কাছে ভাগ করার মতো কোনও ফাইল নেই। আপনাকে একটি পরিচিত ওয়ার্কিং ফাইল দিয়ে শুরু করতে হবে এবং আপনার প্রয়োজনের সাথে সামঞ্জস্য করতে হবে।
বো জিনেস

1
অক্ষম করা পিএএম জিনিসটি কেবলমাত্র নির্দিষ্ট ক্ষেত্রে। প্যাম সেটিংয়ের সাথে গোলযোগ না করে ফেডোরায় আমার জন্য কাজ করে। উত্তরের লিঙ্কযুক্ত ইমেল বার্তাটি আরও কিছু ধারণার জন্য দেখুন যাতে সমস্ত কিছু সুন্দর হয়ে ওঠার দরকার হয়। আমি শীঘ্রই আমার নোটগুলি আপডেট করব যে আমি কীভাবে এটি ডকারের জন্য কাজ করেছি: hub.docker.com/r/aosqe/ssh-git-server (দয়া করে এটি পড়ার কয়েক দিন আগে অনুমতি দিন)
আকস্তাদিনভ ২

6

এই থ্রেডের আপডেট হিসাবে, 7.5 সংস্করণে ওপেনএসএইচ ইউজপ্রাইভিলিজেপারেশন বিকল্পটি বঞ্চিত করেছে, সুবিধামত পৃথককরণকে অক্ষম করা অসম্ভব করে তুলেছে। দেখা যাচ্ছে যে ব্যবহারকারী হিসাবে এসএসএইচডি চালানো এখন অসম্ভব।

Https://www.openssh.com/releasenotes.html দেখুন


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

ভাল আমি এখনও এটি চেষ্টা করি নি, তবে আমার মনে হয় এটি এখন "স্থির": "এসএসডিডি (8): যখন রুট সুবিধাগুলি ছাড়াই শুরু করা হয় তখন বিশেষাধিকার বিচ্ছিন্নতা ব্যবহারকারী বা পথের অস্তিত্বের প্রয়োজন হয় না the রিগ্রেশন পরীক্ষা চালানো সহজ করে তোলে ফাইল সিস্টেমকে স্পর্শ না করেই। "
ড্যানিয়েল স্যান্টোস

2

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

sshd সংস্করণ ওপেনএসএসএইচ_7.4, ওপেনএসএসএল 1.0.2 কে

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

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

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

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

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


1

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


1
ড্রপবিয়ার -E -F -R -w -g -a -p 2222 -P ./dbearPID # কৌতুকটি করে
ডটবট

1

বো জিনসের উত্তরের উপর ভিত্তি করে এখানে একটি ইউজারল্যান্ড বাশ চূড়ান্ত উত্তর দেওয়া হয়েছে:

  • বাড়িতে ওয়ার্কিং দির তৈরি করুন
  • ওয়ার্কিং ডায়ারে সার্ভার কী তৈরি করুন
  • ওয়ার্কিং ডায়ারে অবস্থিত পিড ফাইল সহ বেসিক কনফিগারেশন ফাইল তৈরি করুন
  • এসএসএইচ ডেমন চালু করুন

mkdir ${HOME}/custom_ssh
ssh-keygen -f ${HOME}/custom_ssh/ssh_host_rsa_key -N '' -t rsa
ssh-keygen -f ${HOME}/custom_ssh/ssh_host_dsa_key -N '' -t dsa
echo "Port 2222
HostKey ${HOME}/custom_ssh/ssh_host_rsa_key
HostKey ${HOME}/custom_ssh/ssh_host_dsa_key
AuthorizedKeysFile  .ssh/authorized_keys
ChallengeResponseAuthentication no
UsePAM yes
Subsystem   sftp    /usr/lib/ssh/sftp-server
PidFile ${HOME}/custom_ssh/sshd.pid" > ${HOME}/custom_ssh/sshd_config
/usr/bin/sshd -f ${HOME}/custom_ssh/sshd_config
echo "
--------
Process ID : ${HOME}/custom_ssh/sshd.pid
-------"
  • ওপেনএসএসএইচ_7.9 পি 1, ওপেনএসএসএল 1.1.1 এ 20 নভেম্বর 2018
  • পাম লেখক (একই স্থানীয় এবং দূরবর্তী ব্যবহারকারীর সাথে পরীক্ষিত)

আমি এখনও দেখতে পাচ্ছি: "ডিবাগ 1: সেটগ্রুপস () ব্যর্থ হয়েছে: অপারেশন অনুমোদিত নয়"
ডটবিত

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