एक पासवर्ड दर्ज किए बिना विंडोज से लिनक्स तक एसएसएच


11

मैं पासवर्ड दर्ज किए बिना विंडोज से लिनक्स पर ssh / scp का उपयोग करने की कोशिश कर रहा हूं।

यह वही है जो मैंने किया है, और यह काम नहीं करता है:

  • सार्वजनिक और निजी कुंजियाँ पोटीन कुंजी जेनरेटर का उपयोग कर (विंडोज पर)
  • के रूप में फ़ाइलों को बचाया id_rsa.pubऔरid_rsa
  • उनमें नकल की ~/.ssh
  • Linux बॉक्स में id_rsa.pub जोड़ा गया ~/.ssh/authorized_keys
  • मैं तब sshविंडोज से लिनक्स बॉक्स में जाने की कोशिश करता हूं और मुझे अभी भी एक पासवर्ड दर्ज करना है

क्या मैं कुछ भूल रहा हूँ?

जवाबों:


10

आपको विंडोज पर एक प्रमाणीकरण एजेंट चलाना होगा।

उदाहरण के लिए, Pageant , PuTTY (ग्राफिकल SSH क्लाइंट) या प्लंक (इसकी कमांड लाइन समतुल्य) के साथ संयोजन में उपयोग किया जाता है ।

आपको अपने एसएसएच सर्वर की सार्वजनिक कुंजी पेजेंट को बताना होगा। इसके बाद यह बैकग्राउंड में चलते समय आपके सर्वर के ऑथेंटिकेशन रिक्वेस्ट से निपटेगा।


2
नोट: (यह मेरे लिए स्पष्ट नहीं था।) पेजेंट को खोलते समय, यह नीचे दाईं ओर अधिसूचना क्षेत्र में एक आइकन के रूप में खुलेगा। इसे राइट क्लिक करें, और Add Key पर क्लिक करें , और .ppk फ़ाइल चुनें, जो कि पोटीनजेन से उत्पन्न हुई थी।
बद्रज

8

1
कृपया वीडियो के बजाय पाठ-आधारित ट्यूटोरियल से लिंक करने का प्रयास करें।
एक कोडर

ब्लॉग लिंक टूट गया है। इसे आज़माएं: tecmint.com/ssh-passwordless-login-with-putty
Kai Wang

2
ब्लॉग लिंक टूट गया सही कारण है उत्तर तो एक लिंक होना चाहिए।
रामहाउंड

5

Plink (PuTTY का हिस्सा) आज़माएं

 plink -v youruser@yourhost.com -pw yourpw "some linux command"

3
एक सही प्रतिक्रिया के लिए +1, लेकिन आप पासवर्ड की तुलना में सार्वजनिक / निजी कुंजी जोड़ी का उपयोग करना बेहतर समझते हैं।
टेड परसीवल

विकल्प के बावजूद, पलक के साथ आपके पास एक सामान्य टर्मिनल नहीं हो सकता है, उदाहरण के लिए: बैश इतिहास के
PYK

3

SSH कुंजी प्रमाणीकरण सेट करना थोड़ा मुश्किल हो सकता है। ऐसा लगता है कि आप अपने सभी ठिकानों को कवर कर रहे हैं। एक चीज जो अक्सर लोगों को गार्ड से पकड़ती है - आपको यह सुनिश्चित करने की ज़रूरत है कि .sshनिर्देशिका और इसकी सामग्री आपके स्वामित्व में है और केवल आपके द्वारा ही पढ़ी / लिखी जाती है।

इसे चलाना सुनिश्चित करें (आपकी सभी .sshनिर्देशिकाओं पर):

chmod -R 700 on ~/.ssh

अगर वह काम नहीं करता है, तो -vअपने sshकमांड में जोड़कर वर्बोज़ लॉगिंग चालू करें (आप -vsअधिक वर्बोसिटी के लिए तीन एस तक जोड़ सकते हैं )।



2

मैं मान रहा हूं कि आपकी कुंजी पासवर्ड से सुरक्षित नहीं है, और जो आपको मिल रहा है वह आपके कुंजी के पासवर्ड के लिए अनुरोध नहीं है।

~ / .ssh का उपयोग विंडो की तरफ पोटीन द्वारा नहीं किया जाता है, और पोटीन में डिफ़ॉल्ट निजी कुंजी सेटिंग नहीं है। यदि आप एक कमांड लाइन ssh क्लाइंट का उपयोग कर रहे हैं जैसे कि cygwin, आपके घर से .ssh निर्देशिका बनाना काम करेगा। पोटीन से, आपको एक सत्र को कॉन्फ़िगर करने और सहेजने की आवश्यकता होगी।

पोटीन कॉन्फ़िगरेशन संवाद से, कनेक्शन -> डेटा को देखें, और ऑटो-लॉगिन उपयोगकर्ता नाम फ़ील्ड भरें। फिर कनेक्शन पर जाएं -> ssh -> स्थिति, और अपनी निजी कुंजी को सही ढंग से सेट करें। फिर सत्र संवाद पर वापस जाएं, और इस सत्र को सहेजें। आप चाहें तो होस्टनाम भी सेट कर सकते हैं।

एक बार आपके पास सहेजा गया सत्र होने के बाद, आप 'पोटीन-लोड "सेव्डवेशन" का उपयोग कर सकते हैं।


इसके अलावा, लक्ष्य मशीन पर chmod 700 ~ / .shsh, और chmod 644 ~ / .ssh / अधिकृत कुंजी। एक बार जब मैंने आपके निर्देशों का पालन किया और अनुमतियों को सही ढंग से सेट किया, तो यह मेरे लिए काम करने लगा।
ब्लिस्टरपिनट्स

1

आपको अपनी होम निर्देशिका पर अनुमतियाँ बदलने की भी आवश्यकता हो सकती है:

chmod 755 ~

1

मैं पहचान निजी कुंजी की आपूर्ति के लिए विकल्प Windows 7का उपयोग करके वास्तव में ऐसा करने में सक्षम था -i:

ssh -i X: \ win-path \ to \ Private-key Remoteuser@remote.host.com

सिवाय इसके कि दूरस्थ मेजबान पर, मेरी अधिकृत कुंजी अंदर है /etc/ssh/authorized_keys/remoteuserऔर /etc/ssh/sshd_configमैं बदल गया हूं

#AuthorizedKeysFile     .ssh/authorized_keys
AuthorizedKeysFile      /etc/ssh/authorized_keys/%u

लेकिन मुझे नहीं पता कि एसएसएच रिमोट कॉन्फिगर की बात होनी चाहिए या नहीं।


1

आपको केवल क्रॉस-प्लेटफ़ॉर्म sshकमांडलाइन टूल, ssh-keygenऔर चाहिए ssh-copy-id। विंडोज के लिए git में उन्हें शामिल किया गया है।

या तो गिट-स्थापित bashशेल से ऐसा करें :

#By default this puts keyfile pair in ~/.ssh/id_rsa & ~/.ssh/id_rsa.pub :

ssh-keygen.exe -t rsa -b 2048 
ssh-copy-id -i ~/.ssh/id_rsa.pub  $remoteuser@$remotehost

# These two chmod lines are needed on unix platforms, probably not on Windows. 
# typically ssh refuses to use a private key file 
# if it is less-well protected than this:
chmod 700 ~/.ssh
chmod 640 ~/.ssh/id_rsa

या इस स्क्रिप्ट को PowerShell में चलाएं:

Param(
  [Parameter()][string]$keyfile="id_rsa",
  [Parameter()][string]$remotehost,
  [Parameter()][string]$remoteuser
  )
write-host "# ---------------------------------------------------------------------------------#"
write-host "# Create an RSA public/private key pair, and copy the public key to remote server  #"
write-host "#                                                                                  #"
write-host "# /superuser/96051                                            #"
write-host "#         ssh-from-windows-to-linux-without-entering-a-password/1194805#1194805    #"
write-host "#                                                                                  #"
write-host "# ---------------------------------------------------------------------------------#"

write-host "Keyfile pair will be saved at : ~/.ssh/$keyfile, ~/.ssh/$keyfile.pub"
write-host "And copied to $remoteuser@$remotehost"
write-host ""
write-host "You will need a password for the copy operation."
write-host ""

if( -not $(ls ~/.ssh) ) { mkdir ~/.ssh }
$sshdir=$(get-item ~/.ssh/).Fullname

#By default this puts keyfile pair in ~/.ssh/id_rsa & ~/.ssh/id_rsa.pub :
ssh-keygen.exe -t rsa -b 2048 -f "$sshdir$keyfile"

# ssh-copy-id somehow didn't work in Powershell so I called it via bash
bash -c "ssh-copy-id -i ~/.ssh/$keyfile.pub $remoteuser@$remotehost"

# I'm not sure if these two chmod lines work on windows but 
# typically ssh refuses to use a private key file 
# if it is less-well protected than this:
chmod.exe 700 $sshdir
chmod.exe 640 "$sshdir$keyfile"

इसके बाद, पासवर्ड रहित लॉगिन को दोनों sshऔर के लिए काम करना चाहिए scp

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