जवाबों:
प्रयत्न:
sftp -o "IdentityFile=keyname" jay@server.name.com
आप -oकिसी भी विकल्प को पारित करने के लिए उपयोग कर सकते हैं जो कि मान्य है ~/.ssh/config।
IdentityFileविकल्प हमेशा स्वचालित रूप से दिया जाए, तो यूटा जारहेड के उत्तर को चेक करने के बारे में बताएं~/.ssh/config
पारंपरिक तरीकों का उपयोग करके सर्वर पर अपनी सार्वजनिक कुंजी की प्रतिलिपि बनाएँ।
सर्वर पर:
.sshअगर यह मौजूद नहीं है:[[! -d "$ {HOME} / ssh"]] && mkdir -p "$ {HOME} / ss"।
cat /path/to/public_key.pub >> "$ {HOME} /। ssh / अधिकृत_कीप्स"
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
यदि आप ec2 पर sftp सेटअप करना चाह रहे हैं , तो यह लेख मदद कर सकता है
मैं हाल ही में इस मुद्दे पर आया और मेरे मैकबुक डिफ़ॉल्ट टर्मिनल सेटअप में मेरे लिए जो काम किया वह निम्नलिखित है
sftp -i ./privateFilePath.key username@url.com
ध्यान दें कि आपको UNPROTECTED PRIVATE KEY FILE से प्रचारित किया जा सकता है ! संदेश यह सुनिश्चित करने के लिए कि आपकी निजी कुंजी दूसरों के लिए सुलभ नहीं है, यह सुनिश्चित करने के लिए आपको इस आदेश को चलाने की आवश्यकता है।
chmod 600 privateFilePath.key
कुछ मामलों में आपको कमांड के सामने sudo लगाने की आवश्यकता होती है , यह केवल तभी होता है जब आप किसी व्यवस्थापक संरक्षित निर्देशिका में काम कर रहे हों
मैं मददगार चाहते हैं :)
-iविकल्प काम नहीं कर रहा है तो आप इससे मदद की उम्मीद क्यों करते हैं ?