एक EC2 ubuntu सर्वर के पासवर्ड के साथ लॉगिन करने के लिए मैं एक sftp उपयोगकर्ता कैसे सेट करूं?


14

मेरे पास एक EC2 उदाहरण पर एक Ubuntu सर्वर चल रहा है। उस सर्वर में प्रवेश करने के लिए मैं बिना किसी पासवर्ड के एक प्रमाण पत्र फ़ाइल का उपयोग करता हूं।

मैंने vsftpd को स्थापित और कॉन्फ़िगर किया है और एक उपयोगकर्ता बनाया है (चलो उसे "testuser" कहते हैं) जिसके लिए मैंने / bin / false ssh टर्मिनल सेट किया है, इसलिए यह केवल sftp के माध्यम से कनेक्ट करने और अपने घर पर फ़ाइलों को अपलोड / एक्सेस करने में सक्षम होगा निर्देशिका।

हालाँकि - जब मैं अपने कंप्यूटर से सर्वर से कनेक्ट करने का प्रयास करता हूं, तो चल रहा है

sftp testuser@my-ec2-server

मुझे मिला

अनुमति से इनकार (publickey)।
कनेक्शन बंद

संदेश इसलिए मैं लॉग इन नहीं कर सकता।

मैं केवल इस उपयोगकर्ता के लिए प्रमाण पत्र की आवश्यकता को कैसे हटा सकता हूं (मतलब, "ubuntu" उपयोगकर्ता को अभी भी ssh के माध्यम से लॉगिन करने के लिए प्रमाणपत्र फ़ाइल का उपयोग करना होगा), इसलिए सामान्य sftp क्लाइंट एक उपयोगकर्ता नाम और पासवर्ड का उपयोग करके कनेक्ट करने में सक्षम होंगे?

धन्यवाद।

PS उबंटू सर्वर का उपयोग कर 10.10 आधिकारिक एएमआई को कैनोनिकल से, 64bit पर एक माइक्रो इंस्टेंस पर।

जवाबों:


10

आप जो चाहते हैं उसे पूरा करने के लिए, आपको दो अलग-अलग काम करने होंगे

  1. पासवर्ड स्वीकार करने के लिए sshd config बदलें

मैं सबसे पहले यह कहूंगा कि ऐसा करना एक बुरा विचार है, मैं आपके उपयोगकर्ता के लिए सक्रियण पासवर्ड की तुलना में एक प्रमाण पत्र उत्पन्न करूंगा, फिर भी यदि आप ऐसा करना चाहते हैं तो /etc/ssh/sshd_configइसे संपादित करें और इसे बदल दें या इसे अनलॉक्ड कर दें PasswordAuthentication yes। एक बार किया जाता है कि पुनः आरंभ sshdservice ssh restart

  1. उपयोगकर्ताओं को केवल sftp का उपयोग करके FTP दें और शेल न हो

यह सुनिश्चित करने के लिए कि आपको rsh (रिस्टोर किए गए शेल) को स्थापित करने और उपयोगकर्ता शेल को इसे बदलने की आवश्यकता है chsh username


मैं केवल यह विशिष्ट उपयोगकर्ता (परीक्षक) चाहता हूं, जिसके पास प्रमाणपत्र के बजाय पासवर्ड का उपयोग करने के लिए केवल sftp एक्सेस होगा। उस उपयोगकर्ता को ssh के माध्यम से एक्सेस करने की अनुमति नहीं देने का हिस्सा, मैंने पहले ही यह परिभाषित कर दिया है कि यह bash प्रकार / बिन / गलत के रूप में है
Doron

1
डोरोन, आप केवल एक उपयोगकर्ता को पासवार्ड के माध्यम से अनुमति नहीं दे पाएंगे, आप या तो सभी के लिए पासवर्ड की अनुमति देते हैं या किसी के लिए भी। इसके अलावा /bin/falsesftp कनेक्शन की अनुमति नहीं देगा (किसी भी ssh कनेक्शन को एक वैध शेल की आवश्यकता है, यही वह जगह है जहाँ rsh चाल करता है)
lynxman

1
यह मेरे लिए उबंटू ईसी 2 पर काम नहीं करता था, यह सुनिश्चित नहीं था कि जो अतिरिक्त कदम मुझे याद आ रहा है वह पोर्ट 22 खुला है
डॉग मोलिनक्स

देखें serverfault.com/questions/154957/... एक पासवर्ड के साथ सिर्फ SFTP उपयोगकर्ता स्थापित करने के लिए ...
रमन

0

यहाँ कदम दर कदम गाइड की अनुमति है:

  1. उपयोगकर्ता बॉब के लिए SFTP / घर / बॉब / अपलोड पर पहुँच
  2. SSH से बाहर ताला बॉब
  3. कुंजियों के बजाय उपयोगकर्ता नाम / पासवर्ड का उपयोग करें:

सबसे पहले, अपना / etc / ssh / sshd_config फ़ाइल संपादित करें:

sudo nano /etc/ssh/sshd

नीचे स्क्रॉल करें और संशोधित करें:

PasswordAuthentication yes

और इसे नीचे जोड़ें:

Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no  

बाहर निकलने और बचाने के लिए Ctrl-X दबाएँ।

अब उपयोगकर्ता जोड़ें:

sudo useradd bob
sudo passwd bob

अब समूह जोड़ें और ssh अक्षम करें:

sudo groupadd sftpusers
sudo usermod  -g sftpusers bob
sudo usermod -s /usr/bin/rssh bob
sudo usermod -d /home/bob bob

अब अनुमतियाँ सेट करें:

sudo chown root:root /home/bob/
sudo chmod 755 /home/bob/
sudo mkdir /home/bob/uploads
sudo chown bob /home/bob/uploads

sudo service sshd restart

यह सब रूट यूजर (Amazon Linux AMI पर ec2-user) के रूप में लॉग इन किया गया है।


3
केवल एक उपयोगकर्ता पासवर्ड पासवर्ड का उपयोग करने की अनुमति देने के लिए अपनी पैंट को छोड़ने की आवश्यकता नहीं है।
EEAA
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.