আমি কীভাবে লিনাক্সে ওপেনএসএসএফ এসএফটিপি সার্ভার সেটআপ করতে পারি?


10

ডিরেক্টরি শেয়ার করার জন্য আমি এসএফটিপি-সার্ভারটি কনফিগার করতে চাই তবে কীভাবে পরিবর্তন করতে হয় তা আমি জানি না /etc/ssh/sshd_config

আমার প্রয়োজনীয়তাগুলি হ'ল:

1) লগইন শংসাপত্র ব্যবহার করবে না, শুধুমাত্র পাসওয়ার্ড (যেমন অনুমোদন পাসওয়ার্ড পদ্ধতি ব্যবহার করে)

2) আমি ব্যবহারকারীর সাথে লগইন করতে চাই: এফটিপি, পাসওয়ার্ড: ফু এবং শেয়ার ডিরেক্টরি / হোম / এফটিপি।

3) আমার একটি অ্যাপ্লিকেশন রয়েছে যা সময়ে সময়ে সার্ভার থেকে একটি ফাইল ডাউনলোড করা দরকার, আমার একটি সম্পূর্ণ অপারেটিং ক্লায়েন্টের সাথে লগইন করার দরকার নেই।

এখনও অবধি আমি নিম্নলিখিত লাইনগুলিকে / etc / ssh / sshd_config এ যুক্ত করেছি:

Protocol 2
Subsystem sftp /usr/libexec/sftp-server
Match User ftp
   ForceCommand internal-sftp
   ChrootDirectory /home/ftp

অন্য সব কিছু মন্তব্য করা হয়।

/home/ftp বর্তমান মুহূর্তে একটি খালি ডিরেক্টরি।

রুট শংসাপত্রগুলি ব্যবহার করে যদি কোনও ফাইল ডাউনলোড করার চেষ্টা করি তবে অ্যাক্সেস কাজ করে তবে আমি ftp শংসাপত্রগুলি ব্যবহার করলে তা কার্যকর হয় না। আমার কি লগইন শেল সেট করতে হবে? আমার কি কোনও উপায়ে / হোম / এফটিপি পপুলেশন করা দরকার?

সম্পাদনা: এটি আমার এসএসডি লগ:

subsystem request for sftp
debug1: subsystem: exec() internal-sftp
debug1: Forced command (config) 'internal-sftp '
debug2: fd 3 setting TCP_NODELAY
debug2: fd 9 setting O_NONBLOCK
debug2: fd 8 setting O_NONBLOCK
debug1: Received SIGCHLD.
debug1: session_by_pid: pid 17613
debug1: session_exit_message: session 0 channel 0 pid 17613
debug2: channel 0: request exit-status confirm 0
debug1: session_exit_message: release channel 0
debug2: channel 0: write failed
debug2: channel 0: close_write
debug2: channel 0: send eow
debug2: channel 0: output open -> closed
debug2: channel 0: read<=0 rfd 9 len 0
debug2: channel 0: read failed
debug2: channel 0: close_read
debug2: channel 0: input open -> drain
debug2: channel 0: ibuf empty
debug2: channel 0: send eof
debug2: channel 0: input drain -> closed
debug2: channel 0: send close
debug2: notify_done: reading
debug3: channel 0: will not send data after close
debug3: channel 0: will not send data after close
User child is on pid 17611
debug3: mm_request_receive entering

* ক্লায়েন্ট এখানে স্তব্ধ (একটি সময়সীমা না হওয়া পর্যন্ত) *

দয়া করে নোট করুন, আবার যদি আমি "রুট" হিসাবে লগইন করি তবে ফাইলটি সঠিকভাবে ডাউনলোড হয়। আমি কনফিগারেশন ফাইলের শেষ তিনটি লাইন (যেমন Matchলাইন এবং নিম্নলিখিত 2) টি মন্তব্য করি তবে এটি সঠিকভাবে ডাউনলোড হয় ।


আপনি কি কেবল ম্যাচ বিকল্পগুলির মধ্যে একটি নির্দিষ্ট করার চেষ্টা করেছেন ? আপনি যখন সত্যিকারের এসএফটিপি ক্লায়েন্ট ব্যবহার করেন তখন কী ঘটে? আপনি কি এখনও কোনও সাধারণ এসএসএইচ ক্লায়েন্ট, যেমন sshউইন্ডোজে বা পিটিটিওয়াই ব্যবহার করে সংযোগ স্থাপন করতে পারেন ? আপনি ওপেনএসএইচ-এর কোন সংস্করণ ব্যবহার করছেন?
ড্যানিয়েল বেক

উত্তর:


7

আপনার নিশ্চিত /home/ftpহওয়া দরকার rootযে সেই গোষ্ঠীর মালিকানা রয়েছে এবং সেই গোষ্ঠী এবং অন্যদের লেখার অনুমতি নেই, যেমন chmod 0755ftpফাইলগুলি যুক্ত করার জন্য আপনাকে সাব-ডিরেক্টরি যুক্ত করতে হবে।


internal-sftpআপনারও সাবসিস্টেম দরকার , অন্যথায় আপনার এখানে একটি উপযুক্ত chrootপরিবেশ সরবরাহ করতে হবে /home/ftp:

Subsystem sftp internal-sftp

সমস্ত নন-পাসওয়ার্ডের লগইনকে বাতিল করতে, প্রবেশ করান

ChallengeResponseAuthentication no
GSSAPIAuthentication no
PubkeyAuthentication no

এগুলি ডিফল্টরূপে সক্রিয় করা হয়।


আপনার সাথে আমার সাবসিস্টেম লাইনটি প্রতিস্থাপন (এবং ডিরেক্টরি অনুমতি নির্ধারণ) আমার ত্রুটির স্ট্রিংটি অদৃশ্য হয়ে যায়, তবে আমার ক্লায়েন্ট প্রোগ্রামগুলি "স্তব্ধ হয়ে যায়" এবং আমার প্রয়োজনীয় ফাইলটি ডাউনলোড করে না (রুট শংসাপত্রগুলি ব্যবহার করে এটি ডাউনলোড করতে পারি)। Sshd আউটপুট আরও ভারবোজ করার কি কোন উপায় আছে?
এমিলিয়ানো

পরিবর্তে কেবল একটি একক কনফিগারেশন আইটেম যুক্ত করার চেষ্টা করুন এবং বিকল্পগুলির মধ্যে কোনটি দোষ রয়েছে তা নির্ধারণ করতে আপনি সংযোগ করতে পারবেন কিনা, বা এটি বিকল্পগুলির সংমিশ্রণ কিনা তা পরীক্ষা করে দেখুন। আপনার কিছুটা আউটপুট থাকা উচিত /var/log/secure, কমপক্ষে সেটাই আমি আমার সিস্টেমে পেয়েছি।
ড্যানিয়েল অঙ্গুলিনির্দেশ

লগলভেল নির্দেশিকা ব্যবহার করে আমি আমার লগইন স্তর উত্থাপন করেছি। আমি স্ট্রিং ইন পড়তে পারি /var/log/messages। আমি নিম্নলিখিত রয়েছে: Failed none for ftp [...]দ্বারা অনুসরণ Accepted password for ftp [...]এবং User child is on pid 7658। ক্লায়েন্টটি ঝুলে যায় এবং তারপরে সময় শেষ হয়
এমিলিয়ানো

@happy_emi আপনার প্রশ্নে সেই তথ্য যুক্ত করার বিষয়ে বিবেচনা করুন।
ড্যানিয়েল বেক

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