SSH कंसोल लॉगिन कार्य कर रहा है लेकिन SFTP नहीं, क्यों?


17

मैं फाइलज़िला के साथ SFTP की कोशिश कर रहा हूं, लेकिन यह सर्वर से कनेक्ट नहीं हो पा रहा है और मुझे लगता है कि यह मेरे फ़ायरवॉल नियमों के कारण है?

मैं एसएसएच बिल्कुल ठीक कर सकता हूं। SSH के लिए पोर्ट 6128 है। क्या कोई मुझे बता सकता है कि SSH के लिए FTP कनेक्शन की अनुमति देने के लिए मुझे क्या बदलाव करने होंगे, जो कि SSH पहले से ही काम कर रहा है?

(यहाँ मेरे IPtables नियम हैं)

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
fail2ban-ssh  tcp  --  anywhere             anywhere             multiport dports ssh
ACCEPT     all  --  anywhere             anywhere
REJECT     all  --  anywhere             loopback/8           reject-with icmp-port-unreachable
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     udp  --  anywhere             anywhere             udp dpt:9987
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:10011
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:30033
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:6128
ACCEPT     icmp --  anywhere             anywhere             icmp echo-request
LOG        all  --  anywhere             anywhere             limit: avg 5/min burst 5 LOG level debug prefix "iptables denied: "
DROP       all  --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere

Chain fail2ban-ssh (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere

फाइलज़िला की प्रतिक्रिया है: "डिस्कनेक्टेड: नो सपोर्टेड ऑथेंटिकेशन मेथड्स (सर्वर भेजा गया: publickey)" लेकिन मैं उसी कुंजी का उपयोग कर रहा हूं जो मेरे SSH कंसोल लॉगिन के लिए काम करता है (PuTTy on windows btw)
तम्बू

2
SFTP SSH से अधिक एफ़टीपी नहीं है । आपको कहीं भी 'FTP' की अनुमति नहीं है। तथ्य यह है कि फाइलज़िला का कहना है कि "कोई समर्थित प्रमाणीकरण विधियाँ उपलब्ध नहीं हैं" यह इंगित करता है कि यह सर्वर ठीक से जुड़ा हुआ है, और समस्या कुछ फ़ायरवॉल के साथ नहीं है। आपने अपनी सार्वजनिक कुंजी का उपयोग करने के लिए फाइलज़िला की स्थापना कैसे की?
सर्कस कैट

नमस्ते और यूनिक्स और लिनक्स में आपका स्वागत है। यह भ्रामक बी / सी SFTP प्रोटोकॉल एफ़टीपी के साथ अपने नाम के एक घटक को साझा करता है, लेकिन इससे परे उनका एक दूसरे से कोई लेना-देना नहीं है। SSH एक एकल प्रोटोकॉल है जो पोर्ट 22 पर चलता है और यह एक इंटरैक्टिव शेल के रूप में सुरक्षित रूप से कनेक्ट करने या एक ही कनेक्शन पर फ़ाइलों को स्थानांतरित करने की क्षमता प्रदान करता है। दूरस्थ पक्ष पर SSH सर्वर को SFTP कनेक्शन के लिए अनुमति देने की आवश्यकता होती है, इसलिए मैं SSH सर्वर के लॉग इनसाइट्स में देखूंगा कि क्यों यह सुनिश्चित करने में विफल हो रहा है कि फाइलज़िला के पास सर्वर से सुरक्षित रूप से जुड़ने के लिए एक उपयुक्त कुंजी है।
स्लम

मैं एक नज़र भी रखूँगा और SFTP को सर्वर से ठीक से सेटअप कर रहा हूँ, हाँ आप sftpकनेक्ट करने के लिए सर्वर पर कमांड लाइन टूल का उपयोग कर सकते हैं, जो मिक्स में फाइलज़िला लाने से पहले चीजों को सत्यापित करने में सहायक है। digitalocean.com/community/tutorials/…
स्लम

जवाबों:


10

अन्य होस्ट से अपने sftp तक पहुंचने के लिए, कृपया सुनिश्चित करें कि निम्नलिखित स्थापित और ठीक से कॉन्फ़िगर किया गया है।

  • ओपनएसएसएच सर्वर स्थापित
  • कॉन्फ़िगर sshd_config
    • पब्कुअथेंटिकेशन हाँ
    • सबसिस्टम आंतरिक sftp
  • अपनी सार्वजनिक कुंजी को ~ / .sh / अधिकृत_कीप में जोड़ा गया

  • Ssh सर्वर को पोर्ट 22 / TCP ओपन के साथ शुरू करें # /etc/init.d/sshd start

  • # iptables -I INPUT -j ACCEPT -p tcp --dport 22

अंत में, परीक्षण $ sftp <login>@<hostname>


एक और अच्छा विचार यह है कि [[$ -! = I ]] && वापसी का उपयोग करके इंटरैक्टिव सत्र की जाँच करें ।
OMG-1

1
Subsystem sftp internal-sftpमेरे लिए किया। यह /usr/libexec/openssh/sftp-serverडिफ़ॉल्ट रूप से सेट किया गया था, जो अस्तित्व में भी नहीं था
शांत

Subsystem sftp internal-sftpSshd_config में जोड़ना मेरे लिए सेंटोस पर कोई अन्य परिवर्तन नहीं है।
कॉरगलोर

2

मेरे मामले में, उपयोगकर्ता के पास zshअपनी .bashrc फ़ाइल के शीर्ष पर था , ताकि वह बैश के बजाय ज़श खोल में गिर सके।

बैश उनका डिफ़ॉल्ट शेल था। इसे हटाने से समस्या हल हो गई। मैं तो chsh user -s /bin/zshउपयोगकर्ता के लिए अपने डिफ़ॉल्ट खोल के रूप में zsh बनाए रखने के लिए।


अन्य गोले (जैसे fish) के साथ भी यही समस्या है ।
पॉल

1

क्या आपके पास अपनी किसी भी .profile फ़ाइल जैसे कि कंसोल (जैसे इको स्टेटमेंट) में कोई टेक्स्ट जा रहा है .bashrc? यह sftp कनेक्टिविटी के साथ गड़बड़ कर सकता है। सर्वरफॉल्ट पर एक समान प्रश्न के लिए मेरा उत्तर देखें


इससे वास्तव में सावधान रहें। यदि आप fishइस तरह के अन्य कंसोल को ऑटो लॉन्च करते हैं , तो इसी तरह के मुद्दों का परिणाम होगा।
पॉल

1

आपका एंटी-वायरस सॉफ्टवेयर भी इसका कारण बन सकता है। हमने हाल ही में इसका सामना किया। sshके माध्यम से PuTTY ठीक काम कर रहा था, लेकिन WinSCP कनेक्ट करने में सक्षम नहीं था। एंटी-वायरस में एक अपवाद को कॉन्फ़िगर करने के बाद काम करना शुरू कर दिया।


0

यदि आप फ़ाइलज़िला का उपयोग कर रहे हैं, तो निम्नलिखित उत्तर से मुझे मदद मिली:

https://www.digitalocean.com/community/questions/able-to-access-via-ssh-but-not-filezilla

Filezilla में, मेनू पर क्लिक करें संपादित करें-> सेटिंग्स, बाएं पैनल पर कनेक्शन-> SFTP तक विस्तार करें। दाईं ओर सुनिश्चित करें कि आपके पास सही निजी कुंजी फ़ाइल है, या सही प्रविष्टि गुम होने पर जोड़ें।

DO वेब कंसोल का उपयोग करते हुए, रूट के रूप में लॉगिन करें और 'tail -f /var/log/auth.log' करें। फिर फ़ाइलज़िला के साथ लॉगिन करने और किसी भी संदेश को नोट करने का प्रयास करें।


0

सर्वरफॉल्ट पर एक समान प्रश्न का मेरा उत्तर :

मैं बस इस समस्या में भाग गया (विशेष रूप से sftp के लिए, लेकिन ssh नहीं, जहां मैं मुद्दे के बिना कनेक्ट कर सकता था) और यहां कोई भी समाधान मेरे लिए काम नहीं किया। मेरे मामले में यह बहुत सारे ssh कीज़ (IdentityFile) में होने के कारण था ~/.ssh/। ऐसा लगता है कि जब आपके पास ~/.ssh/configउस होस्ट के लिए होस्ट प्रविष्टि नहीं है जिसे आप सही कुंजी से कनेक्ट करने का प्रयास कर रहे हैं, तो यह आपकी सभी कुंजी को एक-एक करके भेजता है। मेरे पास 6 से अधिक कुंजियाँ थीं, और निश्चित रूप से पर्याप्त है, डिफ़ॉल्ट MaxAuthTries6 है (कम से कम उबंटू में)।

समाधान सर्वर का संपादन /etc/ssh/sshd_configऔर वृद्धि करना था MaxAuthTries। मैंने अपना 10 सेट किया।

#MaxAuthTries 6
MaxAuthTries 10

(या, बस सही कुंजी के साथ एक मेजबान प्रविष्टि जोड़ें - इस विशेष मामले में मैं कुंजी के उपयोग के बिना लॉग इन करने की कोशिश कर रहा हूं)।

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