एक सर्वर से दूसरे सर्वर में डेटा ट्रांसफर करने के लिए मैं अपने कीफाइल का उपयोग कैसे करूं


25

मैं नहीं कर सकता scp, अन्य सर्वर केवल sftp कनेक्शन लेता है।

वर्तमान में, मैं करने की कोशिश कर रहा हूं

sftp jay@server.name.com:/files> put -r ~/

-i keynameकाम नहीं करता है, बस के साथ हल करता है illegal option -- i

जवाबों:


34

प्रयत्न:

sftp -o "IdentityFile=keyname" jay@server.name.com

आप -oकिसी भी विकल्प को पारित करने के लिए उपयोग कर सकते हैं जो कि मान्य है ~/.ssh/config


बिल्कुल सही किया। धन्यवाद! मैं इसे सामान्य रूप से कैसे रखूँ?
जे

मुझे नहीं पता कि आप "सामान्य रूप से वहां रखें" से क्या मतलब है। अगर आपको लगता है कि आप चाहते हैं कि IdentityFileविकल्प हमेशा स्वचालित रूप से दिया जाए, तो यूटा जारहेड के उत्तर को चेक करने के बारे में बताएं~/.ssh/config
सेलाडा

4

पारंपरिक तरीकों का उपयोग करके सर्वर पर अपनी सार्वजनिक कुंजी की प्रतिलिपि बनाएँ।

सर्वर पर:

  • बनाएँ .sshअगर यह मौजूद नहीं है:
[[! -d "$ {HOME} / ssh"]] && mkdir -p "$ {HOME} / ss"।
  • सार्वजनिक कुंजी लागू करें:
cat /path/to/public_key.pub >> "$ {HOME} /। ssh / अधिकृत_कीप्स"
  • उचित अनुमतियाँ सेट करें। OpenSSH सवाल में फाइलों की अनुमति के बारे में बहुत ही आसान है:
chmod go-rwx "$ {HOME}" "$ {HOME} /। ssh / अधिकृत_की"

उसके बाद, आपको PRIVATE कुंजी का उपयोग करके क्लाइंट से लॉग इन करने में सक्षम होना चाहिए। स्थानांतरण को स्वचालित करने के लिए, आप एक बैच फ़ाइल का उपयोग करना चाहते हैं, जो कि एक पाठ फ़ाइल है जिसमें निष्पादित करने के लिए आदेशों की एक सूची है।

इको "putename.foo /safe/path/filename.foo" >> /tmp/batchfile.txt
sftp -b /tmp/batchfile.txt -oIdentityFile = / path / to / private_key उपयोगकर्ता @ होस्ट

वैकल्पिक रूप से, ssh_config प्रारूप में ~ / .sh / config फ़ाइल बनाने के लिए स्वतंत्र महसूस करें ताकि आप भविष्य में इसे टाइप कर सकें:

sftp -b /tmp/batchfile.txt होस्ट

का नमूना सामग्री ~/.ssh/config

The_hostname होस्ट करें
    उपयोगकर्ता user_name
    IdentityFile / path / to / private_key

बीमार अगले बैच पर यह कोशिश, ऊपर समाधान हालांकि चाल किया था।
Jay

1

यदि आप ec2 पर sftp सेटअप करना चाह रहे हैं , तो यह लेख मदद कर सकता है


क्षमा करें, यह वास्तव में नहीं किया।
Jay

1
इस "उत्तर" के पास प्रश्न में योगदान करने के लिए कुछ भी नहीं है। इससे भी बदतर, यह किसी पृष्ठ का लिंक है जो किसी दिन गायब हो जाएगा।
जॉन मेयर 20

0

मैं हाल ही में इस मुद्दे पर आया और मेरे मैकबुक डिफ़ॉल्ट टर्मिनल सेटअप में मेरे लिए जो काम किया वह निम्नलिखित है

sftp -i ./privateFilePath.key username@url.com

ध्यान दें कि आपको UNPROTECTED PRIVATE KEY FILE से प्रचारित किया जा सकता है ! संदेश यह सुनिश्चित करने के लिए कि आपकी निजी कुंजी दूसरों के लिए सुलभ नहीं है, यह सुनिश्चित करने के लिए आपको इस आदेश को चलाने की आवश्यकता है।

chmod 600 privateFilePath.key 

कुछ मामलों में आपको कमांड के सामने sudo लगाने की आवश्यकता होती है , यह केवल तभी होता है जब आप किसी व्यवस्थापक संरक्षित निर्देशिका में काम कर रहे हों

मैं मददगार चाहते हैं :)


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