जवाबों:
प्रयत्न:
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
विकल्प काम नहीं कर रहा है तो आप इससे मदद की उम्मीद क्यों करते हैं ?