Vagrant ssh प्रमाणीकरण विफलता


147

Ssh प्रमाणीकरण के साथ समस्या:

==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: bridged
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...

मैं Ctrl+Cप्रमाणीकरण पाश से बाहर आ सकता हूं और फिर मैन्युअल रूप से सफलतापूर्वक ssh कर सकता हूं ।

मैंने अतिथि बॉक्स पर निम्नलिखित कदम उठाए:

  • के लिए सक्षम Remote Loginहै All Users

  • अनुमतियों के ~/.sshसाथ निर्देशिका बनाई गई 0700

  • अनुमतियों के ~/.ssh/authorized_keysसाथ फ़ाइल बनाई गई 0600

  • इस सार्वजनिक कुंजी को अतीत में बदल दिया~/.ssh/authorized_keys

मैंने सार्वजनिक (ब्रिजेड) नेटवर्क के बजाय एक निजी (होस्टलोन) नेटवर्क का उपयोग करने की कोशिश की है, इस लाइन का उपयोग वैग्रांटाइल में किया है:

config.vm.network "private_network", ip: "172.16.177.7"

मुझे एक ही आउटपुट मिलता है (सिवाय Adapter 2: hostonly) लेकिन फिर मैं मैन्युअल रूप से ssh नहीं कर सकता।

मैंने भी कोशिश की config.vm.network "private_network", ip: "10.0.0.100"

मैंने config.ssh.passwordVagrantfile में सेटिंग करने का भी प्रयास किया । यह आउटपुट करता है SSH auth method: passwordलेकिन फिर भी प्रमाणित नहीं करता है।

और मैंने बॉक्स के पुनर्निर्माण और उपरोक्त सभी को फिर से जाँचने की भी कोशिश की।

ऐसा लगता है कि दूसरों को इस कॉन्फ़िगरेशन के साथ सफलता मिली है , इसलिए ऐसा कुछ होना चाहिए जो मैं गलत कर रहा हूं।

मैंने यह धागा पाया और GUI को सक्षम किया, लेकिन यह मदद नहीं करता है।

जवाबों:


1

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

सौभाग्य।


171

सामान्य जानकारी के लिए: डिफ़ॉल्ट रूप से ssh-connect के लिए आप बस उपयोग कर सकते हैं

उपयोगकर्ता: vagrantपासवर्ड:vagrant

https://www.vagrantup.com/docs/boxes/base.html#quot-vagrant-quot-user

सबसे पहले, कोशिश करें: यह देखने के लिए कि insecure_private_keyआपके मशीन के विन्यास में क्या योनि है

$ vagrant ssh-config

उदाहरण:

$ vagrant ssh-config
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile C:/Users/konst/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

http://docs.vagrantup.com/v2/cli/ssh_config.html

दूसरा, कार्य करें: बदलें फ़ाइल की सामग्री को insecure_private_keyअपने व्यक्तिगत प्रणाली की सामग्री के साथ निजी कुंजी

या उपयोग करें: इसे Vagrantfile में जोड़ें:

Vagrant.configure("2") do |config|
  config.ssh.private_key_path = "~/.ssh/id_rsa"
  config.ssh.forward_agent = true
end
  1. config.ssh.private_key_path आपकी स्थानीय निजी कुंजी है
  2. आपकी निजी कुंजी स्थानीय ssh- एजेंट के लिए उपलब्ध होनी चाहिए। आप के साथ जाँच कर सकते हैं ssh-add -L। यदि यह सूचीबद्ध नहीं है, तो इसके साथ जोड़ेंssh-add ~/.ssh/id_rsa
  3. ~/.ssh/authorized_keysVagrant VM पर अपनी सार्वजनिक कुंजी जोड़ना न भूलें । आप इसे कॉपी-एंड-पेस्ट करके या ssh-copy-id (उपयोगकर्ता: rootपासवर्ड: vagrantपोर्ट: 2222) जैसे टूल का उपयोग करके कर सकते हैंssh-copy-id '-p 2222 root@127.0.0.1'

अगर फिर भी काम नहीं करता है तो यह कोशिश करें:

  1. insecure_private_keyसे फ़ाइल निकालेंc:\Users\USERNAME\.vagrant.d\insecure_private_key

  2. भागो vagrant up(योनि एक नई insecure_private_keyफ़ाइल उत्पन्न होगी )

अन्य मामलों में, यह फॉरवर्ड करने में मददगार है Vagrantfile :

Vagrant::Config.run do |config|
   config.ssh.forward_agent = true
end

उपयोगी:

विन्यास git git-scm.com के साथ हो सकता है

इस प्रोग्राम को सेटअप करने के बाद और निजी सिस्टम बनाने के लिए निजी कुंजी आपके प्रोफाइल पथ में होगी:c:\users\USERNAME\.ssh\id_rsa.pub

पुनश्च: अंत में - सुझाव है कि आप विंडोज 10 पर उबंटू को देखें


4
मेरे मामले में यह समस्या थी क्योंकि config.ssh.private_key_path = "~/.ssh/id_rsa"प्रोविजनिंग का काम करने के लिए इस लाइन को हटाना पड़ा था
होम्स

यह सब काम करता है लेकिन मुझे भी ज्ञात मेजबानों में अपनी प्रविष्टि को हटाना पड़ा। जब मैं स्थानों पर जा रहा था और लॉग इन कर रहा था तो मुझे समस्या हो रही थी।
पम्फाउस

@shilovk +1 शुक्रिया, शुक्रिया, बहुत-बहुत धन्यवाद। "दूसरा, करो" ने चाल चली। फिर, बहुत बहुत शुक्रिया यार।
व्हाईटसिरोई

इसने मुझे सही दिशा में इंगित किया, मेरे मामले में मुझे केवल इतना करना था कि .vagrant / मशीनों / डिफ़ॉल्ट / वर्चुअलबॉक्स / Private_key फ़ाइल को हटाना है और योनि को चलाने के बाद इसे सही एक के साथ फ़ाइल को बदल दिया - मैं बैकअप करूंगा फ़ाइल सिर्फ मामले में
andrux

अपनी BIOS सेटिंग्स की जांच करने के लिए पहला और सबसे महत्वपूर्ण कदम है, सुनिश्चित करें कि वर्चुअलाइजेशन सक्षम है।
बहमन.एक

83

उपरोक्त में से किसी ने भी मेरे लिए काम नहीं किया। किसी तरह बॉक्स में गलत सार्वजनिक कुंजी जोड़ा गया था जो कि उपयोगकर्ता के उपयोगकर्ता अधिकृत_की फ़ाइल में है।

यदि आप अभी भी योनि पासवर्ड (पासवर्ड आवारा) के साथ बॉक्स पर ssh कर सकते हैं, अर्थात

ssh vagrant@localhost -p 2222

इसके बाद सार्वजनिक कुंजी सामग्री को https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub से निम्न कमांड वाली अधिकृत फ़ाइल में कॉपी करें

echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key" > .ssh/authorized_keys

वीएम से बाहर निकलने के बाद और फिर से एसएएसटी की कोशिश करें। यह अब काम करना चाहिए।


4
vagrant reloadअधिकृत_की फ़ाइल को अद्यतन करने के बाद चलाएँ । वैग्रेंट स्वतः असुरक्षित कुंजी का पता लगाएगा और आपके लिए इसे फिर से उत्पन्न करेगा। बाद में काम करना चाहिए।
प्रोफाइलटाइविस्ट

47

यदि आप इस मुद्दे को 1.8.5 योनि पर अनुभव करते हैं, तो इस धागे को जीथब पर देखें:

https://github.com/mitchellh/vagrant/issues/7610

यह मूल रूप से अनुमति के कारण होता है, वर्कअराउंड है

vagrant ssh 
password: vagrant 
chmod 0600 ~/.ssh/authorized_keys
exit

फिर

vagrant reload 

FYI करें: यह समस्या केवल CentOS को प्रभावित करती है, Ubuntu ठीक काम करता है।


मान लें कि मेरे पास एक योनि फ़ाइल के लिए 5 मशीनें हैं। हर बार जब मैं फिर से दौड़ता हूं तो मुझे प्रत्येक मशीन के लिए इसे करने की आवश्यकता होती है। मैं सेंटो का उपयोग करके दिए गए योनि सेटअप के लिए इसे स्थायी रूप से ठीक करता हूं?
पोल

बस 1.8.6 संस्करण के लिए योनि को अपग्रेड करने के लिए 1.8.5 का उपयोग करना था, जहां बग को संरक्षित किया गया था
पोल

42

अतिथि मशीन / VM में निम्नलिखित कमांड चलाएँ:

wget https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub -O ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown -R vagrant:vagrant ~/.ssh

फिर योनि हॉल्ट करें। यह आपकी निजी कुंजियों को हटाएगा और पुनर्जीवित करेगा।

(ये चरण यह मानते हैं कि आपने अपने होम फोल्डर के तहत पहले से ही ~ /। Ssh / और ~ / .sh / अधिकृत_की निर्देशिकाओं का निर्माण कर लिया है या पहले से ही हैं।)


26

मेरे अनुभव में, यह नई योनि मशीनों के साथ आश्चर्यजनक रूप से लगातार समस्या रही है। इसे हल करने का अब तक का सबसे आसान तरीका, कॉन्फ़िगरेशन को बदलने के बजाय, क्लाइंट पर मैन्युअल रूप से आवश्यक ssh कुंजियाँ बनाना, फिर होस्ट पर निजी कुंजी का उपयोग करना।

  1. योनि मशीन में लॉग इन करें: vagrant sshडिफ़ॉल्ट पासवर्ड का उपयोग करें vagrant
  2. Ssh कुंजियाँ बनाएँ: उदाहरण के लिए, ssh-keygen -t rsa -b 4096 -C "vagrant"( GitHub की प्रासंगिक मार्गदर्शिका द्वारा सलाह दी गई है )।
  3. सार्वजनिक कुंजी फ़ाइल का नाम बदलें (डिफ़ॉल्ट id_rsa.pub द्वारा), पुराने को ओवरराइड करके mv .ssh/id_rsa.pub .ssh/authorized_keys:।
  4. मामले में रिलोड ssh सेवा की जरूरत है sudo service ssh reload:।
  5. होस्ट मशीन में निजी कुंजी फ़ाइल (डिफ़ॉल्ट id_rsa द्वारा) की प्रतिलिपि बनाएँ: उदाहरण के लिए, बिल्ली और क्लिपबोर्ड के ठीक संयोजन का उपयोग करें cat .ssh/id_rsa, पेंट और कॉपी करें (बेहतर तरीके मौजूद होने चाहिए, एक का आविष्कार करें!)।
  6. योनि मशीन से लॉगआउट करें logout:।
  7. अपने कॉन्फ़िगरेशन को देखकर योनि द्वारा उपयोग की जाने वाली वर्तमान निजी कुंजी का पता लगाएं: vagrant ssh-config(उदाहरण के लिए देखें itydentityFile "/ J....atalog/pStreet_key"।
  8. वर्तमान निजी कुंजी को आपके द्वारा होस्ट मशीन में बनाई गई जगह से बदलें: उदाहरण के लिए, nano /[...]/private_keyऔर क्लिपबोर्ड से पेस्ट करें, अगर बाकी सब विफल हो जाता है। ( ध्यान दें , हालाँकि, अगर आपका प्राइवेट_की परियोजना विशिष्ट नहीं है, लेकिन कई योनि मशीनों द्वारा साझा किया गया है, तो आप अन्य पूरी तरह से काम करने वाली मशीनों को नहीं तोड़ने के लिए बेहतर तरीके से खुद को पथ को कॉन्फ़िगर करते हैं। मार्ग को बदलना config.ssh.private_key_path = "path/to/private_key"वैग्रांटीफाइल में एक लाइन जोड़ने जितना ही सरल है । ) इसके अलावा, यदि आप PuPHPet जनरेट की गई मशीन का उपयोग कर रहे हैं, तो आप अपनी निजी कुंजी को फाइल करने के लिए स्टोर कर सकते हैं puphpet/files/dot/ssh/id_rsaऔर यह Vagrantfile के ssh कॉन्फिगर में अपने आप जुड़ जाएगा।
  9. सेटअप का परीक्षण करें: vagrant sshअब काम करना चाहिए।

क्या ऐसा होना चाहिए, अपने आप को बधाई, यदि आवश्यक हो तो logoutचलाएं vagrant provisionऔर हाथ में सार्थक कार्य के साथ आगे बढ़ें।

यदि आप अभी भी समस्याओं का सामना करते हैं, तो डिबगिंग को कम करने के लिए ssh कमांड में वर्बोज़ फ़्लैग को जोड़ना आसान हो सकता है। आप डबल डैश के बाद उस (या किसी अन्य विकल्प के लिए) पास कर सकते हैं। उदाहरण के लिए, टाइपिंग vagrant ssh -- -v। अपनी आवश्यकता के अनुसार वी की अधिक मात्रा में जोड़ने के लिए स्वतंत्र महसूस करें, प्रत्येक आपको अधिक जानकारी देगा।


इस जवाब से मुझे मदद मिली। बस अपना अनुभव साझा करने के लिए: किसी तरह (संभवतः कैपिस्ट्रानो की स्थापना के दौरान लेकिन इसकी पुष्टि नहीं हुई है) मेरी अधिकृत_की फ़ाइल मेरे अतिथि वीएम पर हटा दी गई थी। इन चरणों का उपयोग करके इसे फिर से बनाना और मैं अब बिना पासवर्ड संकेत के ssh कर सकता हूं। धन्यवाद।
मार्टिन जॉइनर

होस्ट मशीन से दोनों चाबियों (सार्वजनिक / निजी) को हटाने के बाद, मैं इस प्रक्रिया को फिर से करने और हल करने में सक्षम था
जुलाब

Git का उपयोग करने से वह फ़ाइल सामग्री तेज़ी से स्थानांतरित होती है।
लोलन

1
यह एक मेरे लिए काम करने के बाद कुछ और मैंने कोशिश की थी, असफल रहा .. बहुत बहुत धन्यवाद!
निकोलस

इसने मेरे लिए काम किया। केवल एक चीज जो मैंने अलग की थी वह ssh vagrant@10.0.0.0 -p 22 (password: vagrant)वीएम में लॉगिन करने के लिए उपयोग vagrant sshकर रही थी क्योंकि मेरे लिए काम नहीं कर रही थी। 10.0.0.0मेरे द्वारा निर्धारित निजी आईपी पता है vagrantfile
तूफ़ान_34

11

यह तब भी हो सकता है जब आप अपने वीएम को एसएसएच के लिए डिफ़ॉल्ट रूप से रूट उपयोगकर्ता का उपयोग करने के लिए मजबूर करने की कोशिश कर रहे हों ...।

उदाहरण के लिए, आपके वैग्रांटफाइल में ऐसा कॉन्फ़िगरेशन इस विफलता का कारण हो सकता है:

config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'

समाधान: उन पंक्तियों पर टिप्पणी करें और पुनः प्रयास करें!


2
मेरे लिए केवल config.ssh.username = "योनि" और config.ssh.password = "योनि" सेट करने के लिए ट्रिक
psychok7

8

समस्या मुझे एक ssh प्रमाणीकरण त्रुटियों के लिए मिल रही थी, जिस बॉक्स पर मैंने प्रावधान किया था। मूल ठीक काम कर रहा था।

मेरे लिए समस्या यह थी कि मुझे एक निजी कुंजी याद आ रही थी .vagrant/machines/default/virtualbox/private_key। मैंने मूल बॉक्स और वायोला से एक ही रिश्तेदार स्थान से निजी कुंजी की नकल की!


मैं जोड़ूंगा, कि किसी भी अच्छे डेवलपर के रूप में, हम .vagrantफाइलों में गिट में जांच कर रहे हैं ... और इस तरह, git checkoutउक्त फ़ाइल का एक त्वरित दिन बचाता है!
इयान वघन

8

मैंने Win 8.2 पर कुंजियों के साथ गड़बड़ी का एक तरीका ढूंढ लिया है जहां मैं यहां बताए गए किसी भी तरीके के साथ सफल नहीं हुआ। यह दिलचस्प हो सकता है कि बिल्कुल वर्चुअलबॉक्स, वैग्रांट और बॉक्स 7 का एक ही संयोजन बिना किसी समस्या के विन 7 अल्टिमेट पर चलता है।

मैंने Vagrantfile में निम्न कमांड जोड़कर पासवर्ड प्रमाणीकरण पर स्विच किया:

config.ssh.password = "vagrant"
config.ssh.insert_key = false

ध्यान दें कि मुझे यकीन नहीं है कि यह केवल आवश्यक परिवर्तन है क्योंकि मैंने पहले ही किया था:

  1. मैंने एक नई RSA कुंजी जोड़ी बनाई और तदनुसार अधिकृत_की फ़ाइल बदल दी (सभी वर्चुअल मशीन में, ऊपर और अन्य सुझावों को देखें)

  2. मैंने निजी कुंजी को उसी निर्देशिका में कॉपी किया जहां Vagrantfile रहता है और जोड़ा जाता है

     config.ssh.private_key_path = "./id_rsa"
    

लेकिन मेरा मानना ​​है कि ये बदलाव अप्रासंगिक थे। मैंने बहुत समय बिताया, इसलिए मैंने स्पष्ट कारणों से कार्य विन्यास में बदलाव नहीं किया :)


5

योनि को चलाने में असमर्थ होने के कारण यह अटक जाती है और बार-बार निकल जाती है?

मेरे पास हाल ही में "लैपटॉप की घटना में पानी" था और एक नए (जैसे मैक पर) पर पलायन करना था।

मैंने अपनी सभी परियोजनाओं को सफलतापूर्वक प्राप्त कर लिया है और एक के बगल में चल रहा है, जो कि योनि का उपयोग कर रहा था।

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 8000 (guest) => 8877 (host) (adapter 1)
    default: 8001 (guest) => 8878 (host) (adapter 1)
    default: 8080 (guest) => 7777 (host) (adapter 1)
    default: 5432 (guest) => 2345 (host) (adapter 1)
    default: 5000 (guest) => 8855 (host) (adapter 1)
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Authentication failure. Retrying...
    default: Warning: Authentication failure. Retrying...
    default: Warning: Authentication failure. Retrying...

यह प्रमाणित नहीं कर सकता था, फिर से और फिर से और अंततः छोड़ दिया।

** यह है कि मैं इसे 3 चरणों में वापस मिल गया: **

1 - योनि द्वारा उपयोग किए जाने वाले आइडेंटिटीफाइल का पता लगाएं: $ vagrant ssh-config

Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /Users/ned/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

2 - IdentityFile में सार्वजनिक कुंजी की जाँच करें: $ अपने उपयोगकर्ता के साथ ssh-keygen -y -f /Users/<user-name>/.vagrant.d/insecure_private_key बदलें '<user-name>' यह कुछ इस तरह दिखेगा:

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAA...9gE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==

3 - पासवर्ड "योनि" के साथ योनि मशीन में प्रवेश करें: $ ssh -p 2222 -o UserKnownHostsFile=/dev/null vagrant@127.0.0.1

The authenticity of host '[127.0.0.1]:2222 ([127.0.0.1]:2222)' can't be established.
RSA key fingerprint is dc:48:73:c3:18:e4:9d:34:a2:7d:4b:20:6a:e7:3d:3e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[127.0.0.1]:2222' (RSA) to the list of known hosts.
vagrant@127.0.0.1's password: vagrant
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-31-generic x86_64)
...

4 - अधिकृत_की फ़ाइल में सार्वजनिक कुंजी जोड़ें। $echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAA...9gE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==" > /home/vagrant/.ssh/authorized_keys ssh-rsa

5 - बाहर निकलें (crtl + d) और योनि कंटेनर को बंद करें और इसे वापस लाएं। $ vagrant halt $vagrant up

उम्मीद है कि अब आपकी बाहों में हवा होगी ...

मुझे यह मिला, नेड बैचेल्डर्स लेख से सिर्फ एक मामूली संशोधन के साथ - नेड आप एक विजेता हैं !!


आप साहब एक जीनियस हैं, या नेड बैचेल्डर्स हैं। किसी भी तरह से, यह मेरा मुद्दा तय कर दिया!
Adsy2010

4

मेरे लिए, इसे योनि होम डायरेक्टॉर्ट में .shsh फ़ोल्डर में अनुमतियों को बदलकर हल किया गया था (अर्थात "~ योनि / .ssh")। मुझे लगता है कि जब मैंने अपने आवेदन के लिए ssh कीज़ की स्थापना की थी तब मैंने अनुमतियों को गड़बड़ कर दिया था।

ऐसा लगता है कि 'अधिकृत_कीप्स' फ़ाइल 'आरडब्ल्यू' केवल 'आवारा' उपयोगकर्ता के लिए होनी चाहिए, इसलिए "chmod 600 अधिकृत_कीप्स"; वही निर्देशिका और उसके मूल के लिए जाता है:

इसलिए:

chmod 600 authorized_keys
chmod 700 .
chmod 700 ..

मेरे द्वारा इन सभी अनुमतियों को बहाल करने के बाद ही योनि एसश ने फिर से काम करना शुरू कर दिया।

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


मैं कभी-कभी बदल नहीं सकता, बस सूडो चामॉड 600 अधिकृत_की चल रही है लेकिन यह अभी भी अपरिवर्तित है। मुझे लगता है कि यह कुछ ऐसा है जो इसे खिड़कियों पर भी साझा किया गया है।
डेरियस

कभी-कभी ऐसा होता है जब निर्देशिका एक शेयर पर होती है, उदाहरण के लिए/vagrant/...
रोबर्ट

1
मेरे उत्तर के अलावा मैं इस उत्तर के लिए मतदान करना चाहूंगा। मेरा एक और मशीन पर यह वास्तव में समस्या थी - /home/vagrant/.ssh निर्देशिका के गलत स्वामी। यह "रूट: रूट" था, लेकिन "योनि: योनि" होना चाहिए
माइकल

4

यदि आप अपने VagrantFile में डिफ़ॉल्ट SSH सेटअप का उपयोग कर रहे हैं और क्रैश के कारण अपने VM बॉक्स को पुन: संबद्ध करने के बाद SSH प्रमाणीकरण त्रुटियों को देखने लगे, तो अपनी योनि मशीन में सार्वजनिक कुंजी को बदलने का प्रयास करें।

वैगरेंट सुरक्षा कारणों से प्रत्येक लॉग आउट में असुरक्षित निजी कुंजी जोड़ी से जुड़ी सार्वजनिक कुंजी को बदल देता है। यदि आपने अपनी मशीन को ठीक से बंद नहीं किया है, तो सार्वजनिक / निजी कुंजी जोड़ी सिंक से बाहर जा सकती है, जिससे SSH प्रमाणीकरण त्रुटि हो सकती है।

इस समस्या को हल करने के लिए, बस वर्तमान असुरक्षित निजी कुंजी को लोड करें और फिर सार्वजनिक कुंजी जोड़ी को अपने VM की अधिकृत_की फ़ाइल में कॉपी करें।


3

यह सूची में अंतिम उत्तर हो सकता है, लेकिन इसने मेरे लिए काम किया और मुझे यह उत्तर कहीं नहीं मिला, मैंने इसे 2 दिनों के शोध के बाद अपना आत्म पाया, इसलिए आप बेहतर कोशिश करेंगे यदि आपके लिए अब तक कुछ और काम नहीं हुआ।

मेरे मामले में समस्या मेरे VirtualBox से आई है। मुझे नहीं पता कि किस कारण से एक विकल्प अक्षम किया गया था और इसे सक्षम होना चाहिए था।

यहाँ छवि विवरण दर्ज करें

जैसा कि आप छवि में देख सकते हैं, मेरे VirtualBox के साथ कुछ नेटवर्क समस्याएं थीं और इस समस्या को ठीक करने के लिए मुझे क्या करना था, मेरी मशीन का चयन करना था, सेटिंग्स, नेटवर्क टैब पर दबाएं और उसके बाद यह सुनिश्चित करें कि विकल्प केबल कनेक्टेड है चुना गया। मेरे मामले में यह विकल्प नहीं चुना गया था और मैं इस कदम पर विफल रहा:

default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key

पहले मैंने सोचा कि बंदरगाह पहले से ही उपयोग में है, उसके बाद मैंने वैग्रंट को फिर से स्थापित किया और मैंने अन्य चीजों की भी कोशिश की लेकिन उनमें से किसी ने भी मेरे लिए काम नहीं किया।


3

यह मेरे साथ कई बार हुआ है और जिस तरह से मैंने इसे हल किया वह था:

  1. जाँच करें और सुनिश्चित करें कि आपके Vagrantfile में सही निजी कुंजी पथ है:

    config.ssh.pStreet_key_path = "/home/razvan/.ssh/id_rsa"

  2. निष्पादित करें> एक ​​लिनक्स टर्मिनल में योनि ssh कमांड

  3. आपकी योनि मशीन पर जाती है

    cd /home/vagrant/.ssh

और जांच लें कि अधिकृत_की फ़ाइल में ssh कुंजी वही है जो आपके पास अपने स्थानीय मशीन पर ~ / .ssh / id_rsa.pub में है। यदि आपकी ~ अपने .ssh / id_rsa.pub में पाई गई स्थानीय मशीन पर अपने योनि अधिकृत अधिकृत_की जगह से एक को न बदलें ।

  1. पुनः लोड करें

    योनि पुनः लोड

मनाइए कि यह किसी और के लिए सहायक हो। चीयर्स!


मेरे पास ~ / .shsh फोल्डर नहीं है तो मुझे क्या करना चाहिए ??
आशीष करपे

@AishishKarpe इसे 700 अनुमति के साथ बनाता है और authorized_keys600 अनुमति के साथ एक फ़ाइल बनाता है।
होगन

3

1. मेजबान में निजी कुंजी का पता लगाएँ:

vagrant ssh-config
#

आउटपुट:

Host default
  ...
  Port 2222
  ...
  IdentityFile /home/me/.vagrant.d/[...]/virtualbox/vagrant_private_key
  ...

2. निजी कुंजी पथ और चर संख्या को चर में संग्रहीत करें:

ऊपर से आउटपुट के साथ इन दोनों कमांड का उपयोग करें:

pk="/home/me/.vagrant.d/.../virtualbox/vagrant_private_key"
port=2222
#

3. एक सार्वजनिक कुंजी उत्पन्न करें और इसे अतिथि मशीन पर अपलोड करें:

कॉपी / पास्ता, कोई बदलाव की जरूरत नहीं:

ssh-keygen -y -f $pk > authorized_keys
scp -P $port authorized_keys vagrant@localhost:~/.ssh/
vagrant ssh -c "chmod 600 ~/.ssh/authorized_keys"
rm authorized_keys
#

1
मुझे कई बार वर्णित समस्या थी, आमतौर पर पैकेजिंग के बाद और फिर वैग्रेंट बॉक्स को बहाल करना। क्या काम किया मुझे निम्नलिखित विन्यास को जोड़ने के लिए है Vagrant को यह VM में सार्वजनिक कुंजी डालने का निर्देश देने के लिए: config.ssh.username = "vagrant"; config.ssh.password = "vagrant"; config.ssh.insert_key = trueलेकिन इस बार उपरोक्त कॉन्फ़िगरेशन कुछ भी नहीं है। मैं वास्तव में नहीं जानता कि क्यों, डिबग करने की कोशिश की गई है कि बिना भाग्य के कुंजी क्यों नहीं डाली गई है। तो मैं आपके समाधान और वॉयला पर लौट आया! यह काम करता हैं!
stz184

2

मैक समाधान:

  1. स्थानीय ssh id_rsa कुंजी को निजी कुंजी में जोड़ा गया

    vi /Users//.vagrant/machines/default/virtualbox/pStreet_key

    /Users//.ssh/id_rsa

  2. प्रतिलिपि की गई सार्वजनिक कुंजी /Users//.ssh/id_rsa.pub को योनि बॉक्स अधिकृत_कीट पर

ssh vagrant@localhost -p 2222 (पासवर्ड: योनि) ls -la cd .ssh

  1. chmod 0600 ~/.ssh/authorized_keys

  2. vagrant reload

समस्या का समाधान हुआ।

करने के लिए धन्यवाद


1

इसके अलावा नहीं मिल सकता है:

डिफ़ॉल्ट: SSH सामान्य तरीका: निजी कुंजी

जब मैंने वर्चुअलबॉक्स GUI का उपयोग किया, तो उसने मुझे बताया कि एक OS प्रोसेसर बेमेल था।

आगे की प्रगति के लिए योनि प्राप्त करने के लिए, BIOS सेटिंग्स में मुझे प्रति-सहजता से मुकाबला करना था:

अक्षम करें: वर्चुअलाइजेशन

सक्षम करें: वीटी-एक्स

अपने BIOS में इन सेटिंग को टॉगल करने का प्रयास करें।


1

सबसे पहले आपको ऑटोजेनरेटेड असुरक्षित_पार्टी_की फाइल को हटाना चाहिए, फिर इस फाइल को टाइप करके रिजनरेट करें

vagrant ssh-config

फिर

vagrant halt
vagrant up

यह काम करना चाहिए


मैंने यह कोशिश की लेकिन अभी भी त्रुटि हो रही है क्योंकि मैं उबंटू वर्चुअल बॉक्स वीएम का उपयोग कर रहा हूं कि मैं योनि की कोशिश कर रहा हूं?
आशीष करपे

#vagrant को 'वर्चुअलबॉक्स' प्रदाता के साथ 'डिफ़ॉल्ट' लाने की मशीन ... ==> डिफ़ॉल्ट: किसी भी पहले से सेट किए गए पोर्ट को साफ़ करना ... ==> डिफ़ॉल्ट: किसी भी पहले से सेट किए गए नेटवर्क इंटरफेस को साफ़ करना ... ==> डिफ़ॉल्ट: कॉन्फ़िगरेशन के आधार पर नेटवर्क इंटरफेस तैयार करना ... डिफ़ॉल्ट: एडाप्टर 1: nat ==> डिफ़ॉल्ट: अग्रेषित पोर्ट ... डिफ़ॉल्ट: 22 (अतिथि) => 2222 (होस्ट) (एडाप्टर 1) ==> डिफ़ॉल्ट: बूटिंग वीएम .. । ==> डिफ़ॉल्ट: बूट करने के लिए मशीन की प्रतीक्षा कर रहा है। इसमें कुछ मिनट लग सकते हैं ... डिफ़ॉल्ट: SSH पता: 127.0.0.1:2222 डिफ़ॉल्ट: SSH उपयोगकर्ता नाम: योनि डिफ़ॉल्ट: SSH सामान्य तरीका: निजी कुंजी
आशीष Karpe

1

मैंने निम्नलिखित तरीके से समस्या का समाधान किया। 1. Git Bash का उपयोग करके नई SSH कुंजी बनाएं

$ ssh-keygen -t rsa -b 4096 -C "vagrant@localhost"
# Creates a new ssh key, using the provided email as a label
Generating public/private rsa key pair.
  1. जब आपको "एक फ़ाइल दर्ज करें जिसमें कुंजी को सहेजने के लिए कहा जाए," दर्ज करें दबाएं। यह डिफ़ॉल्ट फ़ाइल स्थान को स्वीकार करता है।

    वह फ़ाइल दर्ज करें जिसमें कुंजी (/User/ Isyouades/.ssh/id_rsa) को सहेजना है: प्रेस प्रेस]

  2. प्रॉम्प्ट पर, एक सुरक्षित पासफ़्रेज़ टाइप करें। यदि आपको पासफ़्रेज़ की आवश्यकता नहीं है, तो आप खाली छोड़ सकते हैं और एंटर दबा सकते हैं।

    वह फ़ाइल दर्ज करें जिसमें कुंजी (/User/ Isyouades/.ssh/id_rsa) को सहेजना है: प्रेस प्रेस]

  3. अपने Vagrant VM प्रकार को निम्न कमांड से कनेक्ट करने के लिए

    ssh योनि @ लोकलहोस्ट-पी 2222

जब आपको निम्न संदेश प्रकार "हां" मिलता है और एंटर दबाएं।

The authenticity of host 'github.com (192.30.252.1)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?
  1. अब SSH कनेक्शन प्रकार स्थापित करने के लिए: $ vagant ssh

  2. Vagrant VM में होस्ट सार्वजनिक कुंजी को अधिकृत_की फ़ाइल में कॉपी करें। उसके लिए, "उपयोगकर्ता / [आप] / ssh" फ़ोल्डर पर जाएं और होस्ट मशीन में id_rsa.pub फ़ाइल में सामग्री को कॉपी करें और Vagrant VM में "~ / .ssh / अधिकृत_keys" फ़ाइल में जाएं।

  3. Vagrant VM में SSH फ़ोल्डर और अधिकृत_की फ़ाइल पर अनुमति बदलें
  4. के साथ योनि पुनः आरंभ करें: $ योनि पुनः लोड

0

मैंने मशीन शुरू की है, फिर:

vagrant ssh-config

मैंने निम्नलिखित प्राप्त किया है:

Host default HostName 127.0.0.1 User vagrant Port 2222 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile /Users/my-user-name/Documents/PHP-Projects/my-php-project/puphpet/files/dot/ssh/id_rsa IdentityFile /Users/my-user-name/.vagrant.d/insecure_private_key IdentitiesOnly yes LogLevel FATAL

फिर मैं भागा

cat ~/.ssh/id_rsa > /Users/my-user-name/Documents/PHP-Projects/my-php-project/puphpet/files/dot/ssh/id_rsa

मशीन यहां से बूट हुई

  • एल कैपिटन 10.11.1 बीटा (15B38b)
  • वर्चुअल बॉक्स 5.0.8 r103449
  • वैग्रांट 1.7.4

0

यहां सभी प्रतिक्रियाओं के बीच, कोशिश करने के लिए बहुत सारी अच्छी चीजें हैं। पूर्णता के लिए, यदि आप

ssh vagrant@localhost -p 2222

जैसा कि @Bizmate सुझाव देता है, और यह विफल रहता है, सुनिश्चित करें कि आपके पास है

AllowUsers vagrant

में /etc/ssh/sshd_configअपने मेहमान / आवारा मशीन की।


0

मैं मई 2015 से एक Puphpet सेटअप के साथ Vagrant का उपयोग कर रहा हूं और यह समस्या थी। ऐसा प्रतीत होता है कि जो कॉन्फ़िगरेशन जनरेट किया गया था, वह वैग्रांट 1.7.4 (या शायद थोड़ा पहले?) को सेंस कीज़ को फिर से बनाने के व्यवहार को हैंडल नहीं करता था अगर यह असुरक्षित कुंजी का पता लगाता।

मैंने "if.file? (CustomKey)" खंड: के अंदर अपने पुप्पेट जनरेट वैग्रांटफिल (स्थानीय सेटअप) में निम्नलिखित जोड़कर इसे हल किया।

config.ssh.insert_key = false

संदर्भ का वचन


0

यह सब सही कदम है कि मैं इस bellow समस्या को ठीक करने के लिए पीछा किया जब कमांड रन योनि।

ये वो चरण हैं जिनका मैंने पालन किया

  1. एक फ़ोल्डर बनाएँ। उदाहरण F: \ प्रोजेक्ट्स
  2. इस फ़ोल्डर को git bash में खोलें और इस कमांड को ssh-keygen -t rsa -b 4096 -C "your_email@example.com" (वैध ईमेल पता डालें) चलाएं
  3. फिर प्रोजेक्ट फ़ोल्डर में दो अलग-अलग फाइलों में की-पेयर बनाते हुए। उदाहरण के लिए प्रोजेक्ट (निजी कुंजी फ़ाइल), project.pub (सार्वजनिक कुंजी फ़ाइल)
  4. इस स्थान C: \ Users \ acer.vagrant.d पर जाएं और फ़ाइल insecure_pStreet_key ढूंढें
  5. फ़ाइल का बैकअप लें और नवनिर्मित निजी कुंजी की सामग्री को कॉपी करें और इसे insecure_pStreet_key फ़ाइल में पेस्ट करें। फिर insecure_pStreet_key को कॉपी करें और इस स्थान पर भी पेस्ट करें।
  6. अब अपनी परियोजना के स्थान पर योनि। उपरोक्त प्रकार के जारी करने के बाद आवारा ssh टाइप करें और उपयोगकर्ता नाम, पासवर्ड दें। (डिफ़ॉल्ट उपयोगकर्ता नाम और पासवर्ड को योनि के रूप में सेट किया गया है)
  7. इस स्थान के अंदर जाएँ cd /home/vagrant/.ssh और टाइप करें mv प्राधिकृत_के लिए अधिकृत_keys_kk
  8. फिर ls -al टाइप करें और ओपन अधिकृत_की फाइल vi संपादक के लिए vi अधिकृत_कीप टाइप करें।
  9. नोटपैड ++ (प्रोजेक्ट.पब) और कॉपी कंटेंट से जनरेटेड सार्वजनिक कुंजी खोलें और फिर vi संपादक और राईट क्लिक और पेस्ट को सक्षम करने के लिए git bash पर i दबाएँ। डालने के मोड से बाहर निकलने के लिए प्रेस भागने के बाद
  10. : Wq! फ़ाइल को बचाने के लिए और ls -al टाइप करें
  11. फिर अनुमतियाँ bellow की तरह सेट हो जाती हैं और drwx ------ को बदलने की आवश्यकता नहीं होती है। 2 योनि आवारा 4096 फरवरी 13 15:33। drwx ------। 4 योनि योनि 4096 फरवरी 13 14:04 .. -आरडब्ल्यू -------। 1 योनि आवारा 743 फरवरी 13 14:26 अधिकृत_की -rw -------। 1 रूट रूट 409 फरवरी 13 13:57 अधिकृत_की__क -rw -------। 1 आवारा योनि 409 जन 2 23:09 अधिकृत_की_शरीर अन्यथा प्रकार chmod 600 अधिकृत_कीप और इस आदेश को भी टाइप करें योनि: योनि प्राधिकृत_की
  12. अंत में आवारा पड़ाव और योनि को फिर से चलाएं।

***************************** ***********


0

बस उन लोगों के लिए जो मेरे जैसे बेवकूफ हैं, या उनकी योनि मशीन के लिए कुछ अजीब हुआ है। यह त्रुटि तब भी हो सकती है जब आपने योनि उपयोगकर्ता की होम निर्देशिका (जानबूझकर या दुर्घटना से) की अनुमति बदल दी हो।

आप पासवर्ड ('आवारा') का उपयोग करके इसके बजाय (जैसा कि अन्य पोस्ट में वर्णित है) लॉग इन कर सकते हैं और फिर अनुमतियों को ठीक करने के लिए निम्न कमांड चला सकते हैं।

sudo chown -R vagrant:vagrant /home/vagrant

तब आपको पासवर्ड दर्ज किए बिना फिर से लॉग इन करने में सक्षम होना चाहिए।

TL; DR: आपके योनि होम फ़ोल्डर की अनुमति गलत है।


0

सरल:

homestead destroy
homestead up

संपादित करें (पहले जितना आसान नहीं है):

मुद्दा यह था कि होमस्टेड के नए संस्करण उपयोग php7.0और कुछ अन्य सामान। इस गड़बड़ से बचने के लिए सुनिश्चित करें कि आप इसमें सेट verisonहैं Homestead.yml:

version: "0"

0

मैंने विंडोज 7 सीएमडी पर कमांड चलाकर इस समस्या को हल किया है, जैसा कि इसमें दिया गया है, इस थ्रेड पर अंतिम पोस्ट लिंक है,

https://github.com/mitchellh/vagrant/issues/6744

Some commands that will reinitialize various network states:
Reset WINSOCK entries to installation defaults : netsh winsock reset catalog
Reset TCP/IP stack to installation defaults : netsh int ip reset reset.log
Flush DNS resolver cache : ipconfig /flushdns
Renew DNS client registration and refresh DHCP leases : ipconfig /registerdns
Flush routing table : route /f

0

एक निरस्त बेस बॉक्स पर पिछले कुछ दिनों से इस पर मेरा सिर पीटा जा रहा है। (मैक ओएस एक्स, एल कैपिटन)

@Radek की प्रक्रिया के बाद मैंने स्रोत बॉक्स पर 'ssh-config-config' किया और मिला:

...
/Users/Shared/dev/<source-box-name>/.vagrant/machines/default/virtualbox/private_key
...

नई प्रति पर, उस आदेश ने मुझे दिया:

...
IdentityFile /Users/<username>/.vagrant.d/insecure_private_key
...

इसलिए, मैंने इस लाइन को नई प्रति में जोड़ा है:

...
config.ssh.private_key_path = "/Users/Shared/dev/<source-box-name>/.vagrant/machines/default/virtualbox/private_key"
...

परिपूर्ण नहीं है, लेकिन मैं अपने जीवन के साथ मिल सकता हूं।


0

खिड़कियों में एक और सरल समाधान, होमस्टेड / वैग्रांटफाइल फाइल में जाएं और इन पंक्तियों को एक निजी कुंजी के बजाय उपयोगकर्ता नाम / पासवर्ड से जोड़ने के लिए जोड़ें:

config.ssh.username = "vagrant"  
config.ssh.password = "vagrant"  
config.ssh.insert_key = false 

तो, अंत में फ़ाइल का हिस्सा इस तरह दिखेगा:

if File.exists? homesteadYamlPath then
    settings = YAML::load(File.read(homesteadYamlPath))
elsif File.exists? homesteadJsonPath then
    settings = JSON.parse(File.read(homesteadJsonPath))
end

config.ssh.username = "vagrant"  
config.ssh.password = "vagrant"  
config.ssh.insert_key = false 

Homestead.configure(config, settings)

if File.exists? afterScriptPath then
    config.vm.provision "shell", path: afterScriptPath, privileged: false
end

उममीद है कि इससे मदद मिलेगी ..


0

मैंने अपने वीएम मशीन पर यह कोशिश की

अनुमतियाँ / घर / योनि बदलें (इस पर एक कामचोर 700 किया

अब मैं सीधे अपने बक्से में ssh कर सकता हूं

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