आप उसी लाइन पर पासवर्ड के साथ लॉगिन करने के लिए sftp के साथ एक लाइनर कैसे कर सकते हैं?


17

क्या sftp के साथ ही लाइन पर पासवर्ड लगाने का विकल्प है?

linux~ $ sftp USERNAME@FTP.WEBSITE.COM:/DIRECTORY_TO_GO_TO/ 

ऐशे ही

linux~ $ sftp USERNAME@FTP.WEBSITE.COM:/DIRECTORY_TO_GO_TO/ -p PASSWORD? 

जवाबों:


13

आम तौर पर कमांड लाइन में पासवर्ड शामिल करना सुरक्षा जोखिम माना जाता है क्योंकि यह किसी और को दिखाएगा जो ps / top चला सकता है, और यह आपके शेल के इतिहास में सहेजा जा सकता है।

यदि आप सक्षम हैं, तो कुंजी-आधारित प्रमाणीकरण को सेट करना बेहतर होगा।

इसके अलावा, मुझे नहीं लगता कि यह sftp के साथ संभव होने जा रहा है। इसका उपयोग सुरक्षित स्थानान्तरण के लिए किया जाना है। यदि आपको वास्तव में ऐसा कुछ करना था और आपके पास कोई अन्य विकल्प नहीं है, तो संभवतः आपको उम्मीद के साथ स्वचालित करने की आवश्यकता है


दिलचस्प बात!
डेनियल

यदि आप सक्षम हैं, तो कुंजी-आधारित प्रमाणीकरण सेटअप करना बेहतर होगा। यह कुछ सही लगता है।
नेट रनर

यह उम्मीद है कि url टूट गया है
André Perazzi

4
समझ में नहीं आ रहा है कि लोग एक जवाब क्यों देते हैं जो समाधान प्रदान नहीं करता है।
इटोक्टोपस

35

जैसा कि दूसरों ने उल्लेख किया है, एक कमांड-लाइन पासवर्ड अंतिम उपाय होना चाहिए।

हालांकि, अगर कुछ और संभव नहीं है; कोई ssh पास के लिए जा सकता है

sshpass -p <password> sftp user@host

2
इसे बड़े पैमाने पर उखाड़ा जाना चाहिए। Sshpass होना वास्तव में उपयोगी है। कुछ प्रदाता आपको .ssh फ़ोल्डर बनाने की अनुमति नहीं देते हैं और scp भी अस्वीकृत हो जाता है।
नेटसक्वायरेल

2
अच्छा है कि कुछ उपकरणों में आपकी पीठ है: brew search sshpass- "हम sshpass नहीं जोड़ेंगे क्योंकि यह SSH के उपयोगकर्ताओं को SSH की सुरक्षा को बर्बाद करने के लिए नौसिखिया SSH उपयोगकर्ताओं के लिए बहुत आसान बनाता है।"
जैतून

4
यह स्वीकृत समाधान होना चाहिए। ओपी ने पूछा कि इस विशिष्ट कार्य को कैसे किया जाए - सुरक्षा सलाह के लिए नहीं (भले इरादे और सही तरीके से)।
ebr

6

ऐसा न करें - स्वचालित लॉगिन के लिए सेटअप SSH सार्वजनिक कुंजी प्रमाणीकरण।


क्या sftp ऐसा करने से scp हो सकता है?
डेनियल

1
@ दानिएल, एसटीपी और एससीपी दोनों को एसएसएच पर बनाया गया है जो कुंजी-आधारित प्रमाणीकरण के लिए अनुमति देता है।
ज़ेडाचे

5

स्क्रिप्ट के लिए पर्ल, रूबी या पाइथन का उपयोग करें। रूबी के मामले में यह सिर्फ (नेट-sftp एपीआई डॉक्स से लिया गया है):

require 'net/sftp'

Net::SFTP.start('host', 'username', :password => 'password') do |sftp|

  # upload a file or directory to the remote host

  sftp.upload!("/path/to/local", "/path/to/remote")

end

अधिक जानकारी के लिए http://net-ssh.rubyforge.org/sftp/v2/api/index.html


paramiko शुद्ध अजगर (बिना किसी अतिरिक्त libs) है और अच्छी तरह से वास्तव में काम करता है
qwertzguy

3

जैसा कि अन्य उत्तरों में कहा गया है, सार्वजनिक कुंजी प्रमाणीकरण का उपयोग करें। एक महान है, हालांकि थोड़ा सा दिनांकित है, आईबीएम डेवलपरवॉर्क्स श्रृंखला जो आपको इसके बारे में जानना चाहते हैं, साथ ही साथ किचेन जैसे कुछ उपयोगी पूरक उपकरण भी बताएंगे।


2

उन खोजकर्ताओं के लिए जो इस बात की परवाह नहीं करते कि पासवर्ड कमांड-लाइन कमांड में देखा जा सकता है:

sftp userid:password@remoteHostsftpकनेक्ट कमांड में पासवर्ड कैसे शामिल करें ।

अद्यतन: यह गलत निकला ... टिप्पणी देखें


OpenSSH v5.3p1 और v4.3p2, दोनों Red Hat Enterprise पर ...
ashnazg

1
यह गलत निकला ... यह विधि मेरे लिए काम करती है क्योंकि वास्तविक स्टैंडअलोन प्रमाणीकरण करने के लिए PHP और उसके ssh2 एक्सटेंशन का उपयोग पहले मेरे कोड में किया जा रहा था ... और sftp कमांड बाद में चलाया जा रहा था। यह बाद का टुकड़ा था जहां वाक्यविन्यास सफल हुआ।

1
होस्टनाम उपयोगकर्ता हल नहीं कर सका: ऐसा कोई होस्ट ज्ञात नहीं है। यह यूज़रनेम में ":" पर विचार कर रहा है जो कि फाइलजिला सीएलआई में नहीं है
पी सतीश पात्रो

1

मुझे संदेह है कि उतने ही उत्तर हैं जितने कि एफ़टीपी ग्राहक हैं। एन्क्रिप्शन स्थापित होने तक एक SFTP सर्वर को प्रमाणीकरण जानकारी को स्वीकार नहीं करना चाहिए, ताकि उपयोगकर्ता और पासवर्ड सुरक्षित रहें।

मेरा मानना ​​है कि FileZilla क्लाइंट उपयोगकर्ता और पासवर्ड के कमांड लाइन को पारित करने की अनुमति देगा .. यहां प्रलेखन देखें । FileZilla परियोजना की प्रतिष्ठा को देखते हुए, मैं इसे सुरक्षित रूप से संचालित करने की अपेक्षा करूंगा।

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