कमांड लाइन से निर्दिष्ट RSA / DSA कुंजी के साथ ओपनश sftp कमांड का उपयोग कैसे करें


35

ऑपेंश ssh और scp कमांड -iने RSA / DSA कुंजी को प्रमाणीकरण के लिए उपयोग करने के लिए पथ निर्दिष्ट करने के लिए एक कमांड लाइन विकल्प साबित किया।

Sftp मैन पेजों को देखते हुए मुझे RSA / DSA कुंजी निर्दिष्ट करने का कोई तरीका नहीं मिल रहा था।

मैं एक sftp सत्र शुरू करने का एक तरीका खोज रहा हूँ जो एक निर्दिष्ट RSA / DSA कुंजी का उपयोग करेगा, और ~ / / ssh / id_ {dsa, rsa} कुंजियाँ।

मैंने लिनक्स पर OpenSSH sftp क्लाइंट की कोशिश की ... लेकिन अन्य प्लेटफार्मों पर इसका विकल्प समान होना चाहिए।


2
कृपया निर्दिष्ट करें कि आप किस sftp क्लाइंट का उपयोग किस प्लेटफ़ॉर्म पर कर रहे हैं।
dmourati

जवाबों:


41

एक संभावित विकल्प का उपयोग करना है sftp -oIdentityFile=/path/to/private/keyfile। यह कहने के लिए और जानकारी चाहिए कि क्या यह आपके लिए काम करेगा। मैक / लिनक्स के तहत काम करने लगता है।


11

आप बस -iअपने sftp या ssh कमांड के लिए तर्क का उपयोग कर सकते हैं ।

sftp -i /path/to/private/keyfile ...

-I विकल्प उपलब्ध नहीं है, तो आप एक वाक्यविन्यास के साथ -o विकल्प का उपयोग कर सकते हैं जैसे:

sftp -oIdentityFile=/path/to/private/keyfile ...

4
sftp में a -i विकल्प नहीं होता है, जो संभवतः ओपी सवाल पूछ रहा है।
user9517 GoFundMonica

मेरे लिनक्स होस्ट के तहत काम करता है, लेकिन मेरा मैक लैपटॉप नहीं है जहां -i विकल्प मौजूद नहीं है।
dmourati

मेरे उबंटू और CentOS होस्ट्स के पास sftp के लिए a -i स्विच नहीं है
user9517 GoFundMonica का समर्थन करता है

मेरा CentOS क्लाइंट करता है: [dmourati @ flexo ~] $ cat / etc / redhat-release CentOS रिलीज़ 5.6 (फाइनल) [dmourati @ flexo ~] $ जो ssh / usr / bin / ssh [dmourati @ flexo ~] $ जो sftp / usr / bin / sftp [dmourati @ flexo ~] $ rpm -qf / usr / bin / sftp opensh-client-4.3p2-72.el5 [dmourati @ flexo ~] $ man sftp [dmourati @ flexo ~] $ man sftp | हेड SFTP (1) BSD जनरल कमांड्स मैनुअल SFTP (1) NAME sftp - सिक्योर फाइल ट्रांसफर प्रोग्राम SYNOPSIS sftp [-1246Cqrv] [-B बफर_साइज] [-b बैचाइल] [-c सिफर] [-D sftp_server_path] [-F sshpconf] ] [
-आई पहचान_फाइल

1
@ वरौरती: और मेरा [iain @ सेंटोस ~] $ नहीं है जो ssh / usr / bin / ssh [iain @ centos ~] $ है जो sftp / usr / bin / sftp [iain @ centos] $ rpm -qf / usr / बिन / sftp ओपनश-क्लाइंट-4.3p2-72.el5_6.3 [iain @ सेंटोस ~] $ मैन sftp | हेड SFTP (1) BSD जनरल कमांड्स मैनुअल SFTP (1) NAME sspp - सुरक्षित फाइल ट्रांसफर प्रोग्राम SYNOPSIS sftp [- 1Cv] [-B बफर_साइज़] [-b बैचफाइल] [-F ssh_config] [-o ssh_option] [-p sftp_server_path] [-R num_refests] [-S प्रोग्राम] [-s सबसिस्टम | sftp_server] host sftp [[user @] host [: file [file]]]
user9517 GoFundMonica का समर्थन करता है

8

आप कनेक्शन के लिए एक वैकल्पिक कॉन्फ़िगरेशन फ़ाइल बना सकते हैं और -Fइसे उपयोग करने के लिए ssh को बताने के लिए स्विच का उपयोग कर सकते हैं। एक कॉन्‍फ़‍िगरेशन फ़ाइल बनाएं जैसे ~ / .ssh / config.sftp सामग्री के साथ

Host remote.host.tld
User RemoteUserName
IdentityFile /path/to/atlernate/identityfile

तो जैसे sftp कॉल करें

sftp -F ~/.ssh/config.sftp remote.host.tld
Connecting to remote.host.tld...
Enter passphrase for key '/path/to/atlernate/identityfile':
sftp>

उपर्युक्त विन्यास वैकल्पिक कुंजी के उपयोग को प्रतिबंधित करता है (जब यह कॉन्फिगर फाइल का उपयोग किया जाता है) Remote.hostNld पर उपयोगकर्ता RemoteUserName के लिए।

वैकल्पिक कॉन्फ़िग फ़ाइल के उपयोग के लिए ssh_confg के मैन पेज पर एक नज़र डालें


मदद के लिए आपका बहुत बहुत धन्यवाद! आप समाधान कमांड लाइन तर्क के लिए एक स्वच्छ विकल्प प्रदान करता है। अभी के लिए, मैं कमांड लाइन के माध्यम से सभी तर्क पारित करना पसंद करता हूं, क्योंकि मैं पहले से ही -oPort = ALT_PORT का उपयोग कर रहा हूं।
आदि रोयबन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.