एक पैरामीटर के रूप में कुंजी फ़ाइल का उपयोग करके scp'ing, अगर संभव हो तो मैं यह कैसे कर सकता हूं?


51
scp -i ~/.ssh/id_rsa.pub events*$date*_QA.log $remote_user@$remote_server:$remote_location

क्या उक्त लिपि गलत है? क्या मैं इसे सही तरीके से नहीं कर रहा हूं?

मैंने .sshडायरेक्टरी में जाकर देखा कि रिमोट सर्वर known_hostsफाइल में है।

लेकिन, जब मैं पैरामीटर के रूप में किसी भी फ़ाइल के बिना साधारण एससीपी करता हूं, तो यह अभी भी पासवर्ड के लिए पूछ रहा है

scp events*$date*_QA.log $remote_user@$remote_server:$remote_location

मैं अपने कमांड में कुंजी फ़ाइल कैसे शामिल कर सकता हूं?

sh-3.2$ grep server ~/.ssh/*
/home/user/.ssh/known_hosts:server....com,ip_addr ssh-rsa Asine=jhjsdhfjsadhfjkashdfjhasdjfhksadjfhasjdfhj

जवाबों:


67
 -i identity_file
         Selects the file from which the identity (private key) for public
         key authentication is read.  This option is directly passed to
         ssh(1).

का उपयोग करें ~/.ssh/id_rsa


अभी भी पासवर्ड के लिए पूछ रहा हैsh-3.2$ scp -i ~/.ssh/id_rsa test_QA.log user@server:location user@server's password:

@tech_learner अजीब, जैसा कि मेरे लिए काम करता है
श्वेतार्क

2
आपको वास्तविक पथ का उपयोग करना पड़ सकता है, जैसे कि / home / उपयोगकर्ता / ~ के बजाय। ऐसा लगता था कि यह मेरे लिए काम कर रहा है।
इवान डार्विन

1
आप स्थानीय उपयोगकर्ता की ~ / .sh / id_rsa.pub सामग्री को दूरस्थ सर्वर की अधिकृत_की फ़ाइल में रखना चाहते हैं। यह आमतौर पर ~ / .ssh / अधिकृत_की में है। आपको ~ / .shsh में फ़ाइलों पर फ़ाइल अनुमतियों के बारे में भी बहुत विशेष होना चाहिए, जिससे उन्हें न्यूनतम रूप से सुलभ बनाया जा सके। sshd फ़ाइल अनुमतियों के बारे में बहुत विशेष है।
जेआर लॉरहॉर्न

मैक ओएस एक्स पर यह केवल तभी काम करता है जब -i ~/.ssh/id_rsaपहला विकल्प था। तो यह काम किया scp -i ~/.ssh/mykey.pem -r dir user@remote_server:~/:। यह काम नहीं किया:scp -r -i ~/.ssh/mykey.pem dir user@remote_server:~/
asamaier

1

यह एक और noob मदद कर सकता है।

[मुझे पता है कि यह एक निरर्थक परिपत्र उदाहरण है लेकिन इसकी व्याख्या करने के लिए अच्छा है] परिदृश्य:

  1. मैक से ssh -> उबंटू
  2. मैक से फ़ाइलें -> Ubuntu
  3. उबंटू से करीबी ssh और scp फाइलें -> मैक

मैंने केवल अपने मैक (ssh-keygen के माध्यम से) पर ssh कुंजियाँ बनाई थीं और उन्हें उबंटू (ssh-copy-id) के माध्यम से चलने वाली मशीन के साथ साझा किया था। इसलिए मैं फ़ाइलों को कॉपी कर सकता हूं, जबकि उबंटू चलाने वाली मशीन से अपने मैक में लॉग इन किया, लेकिन दूसरे तरीके से नहीं।

समाधान: मुझे उबंटू मशीन पर ssh कीज़ बनाना था और उन्हें अपने मैक के साथ साझा करना था। तब मैं उबंटू मशीन पर निम्न कमांड को सफलतापूर्वक चला सकता था

Mac IP: 192.168.1.40
Ubuntu IP: 192.168.1.38

मैक पर

ssh-keygen
ssh-copy-id ubuntu@192.168.1.38

ssh ubuntu@192.168.1.38

# Now on Ubuntu
ssh-keygen
ssh-copy-id MAC@192.168.1.40

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

sudo scp -i /home/ubuntu/.ssh/id_rsa MAC@192.168.1.40:~/Documents/Fluff/Version-Control/tools/pull.sh .

0

इन निर्देशों के माध्यम से परीक्षण किया और ठीक किया गया: https://askubuntu.com/questions/46930/how-can-i-set-up-password-less-ssh-login

जब मैंने अपने बक्सों (CentOS / CentOS) पर परीक्षण किया तो यहाँ के निर्देशों ने त्रुटिपूर्ण रूप से काम किया। मुझे लगता है कि समस्या यह है कि आपकी ssh कुंजियाँ उपयोगकर्ता नाम से बंधी नहीं हैं।

उदाहरण: बॉक्स पर बिल्ली authorized_keys # मैं कर रहा हूँ sshing / scpin 'के लिए ssh-rsa BLAHBLAHBLAHBLAH / zAcS4kD9pyPAjD3 / gd5D1rcQa6IztCMR9yMXiGFnxviWsT8 / oYevZw25k4yREuA8ibLKC9peH1X4LK1E + n7gq4TETexWkZbQ2XGLOX44eglra3MB4FShPg0cZXGcJWltPQ / y0Ay2A / KmaC14YrDfqwm7 + ibTiUp4hOO8I6eIPmwwGn / 2hs0SewJXisGqUx2v my_user@machine.local #username कुंजी से बंधा है और एक है अधिकृत मेजबान

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