आपके प्रश्न को देखते हुए, आपके पास एक स्थानीय फ़ाइल है जिसे आप गंतव्य सर्वर पर भेजना चाहते हैं । तो आपके पास सही वाक्यविन्यास है जो अच्छा है!
यदि आपको अनुमति अस्वीकृत हो रही है, तो आप प्रमाणीकरण के साथ सही उपयोगकर्ता नाम या कुछ गलत का उपयोग नहीं कर रहे हैं । सबसे अधिक संभावना है, ऐसा इसलिए है क्योंकि सुडो कमांड केवल शुरुआत के लिए स्थानीय रूप से काम करता है, इसलिए यह आपको रिमोट बॉक्स पर रूट नहीं देगा, इसलिए शायद यही समस्या है । सुनिश्चित करें कि जिस उपयोगकर्ता को आप दूरस्थ सर्वर पर लॉग इन कर रहे हैं, उसके पास उस स्थान पर लिखने की अनुमति है जिसे आप लिखने का प्रयास कर रहे हैं ।
यदि समस्या यह है कि गंतव्य उपयोगकर्ता के पास सुडो के बिना उस स्थान तक पहुंच नहीं है, तो फ़ाइल को गंतव्य उपयोगकर्ता के होम फ़ोल्डर में ले जाएं, फिर सुडो एमवी फ़ाइल को दूसरे सर्वर पर शेल से सही स्थान पर रखने के लिए ।
मुझे एक समान समस्या थी, ऐसा इसलिए हुआ क्योंकि ssh लेता है -p xxxx जबकि बंदरगाह निर्दिष्ट करने के लिए scp लेता है -P xxxx पोर्ट निर्दिष्ट करने के लिए । मामूली असंगति, याद करना इतना आसान :(
यह त्रुटि मेरे लिए तब हुई जब फ़ाइल पहले से ही लक्ष्य स्थान में मौजूद थी और मौजूदा फ़ाइल में केवल-पढ़ने की अनुमति थी (फ़ाइल को अधिलेखित होने से रोकना) । मेरे मामले में, मैंने अभी लॉग इन किया है और मौजूदा फ़ाइल को हटा दिया है और इससे समस्या ठीक हो गई है ।
एक ही समस्या थी । मुझे पता चला कि निर्देशिका युक्त मेरी स्रोत फ़ाइल के पास पर्याप्त अनुमति नहीं थी । इसलिए मैंने अभी-अभी मोड का उपयोग करके पुनरावर्ती रूप से बदल दिया है:chmod -R 771 directory_path स्रोत मशीन पर ।
मैं अपनी स्थानीय मशीन से कॉपी करने की कोशिश कर रहा था username@localhost; मैं जिस एसएसएच कुंजी का उपयोग कर रहा था, वह मेरे लोकलहोस्ट तक पहुंचने के लिए पंजीकृत नहीं थी, इसलिए मुझे अनुमति अस्वीकार कर दी गई थी । जब मैंने इसे हटा दिया स्रोत भाग, यह काम किया ।
मेरे मामले में, यह प्राप्त पक्ष पर सुरक्षा कारण था, मुझे दूरस्थ उपयोगकर्ता को फ़ाइल लिखने की अनुमति देने के लिए निर्देशिका को चमोड करना पड़ा (मैं निर्देशिका 777 निर्देशिका - लेकिन यह आंतरिक प्रयोगशाला है)