डिफ़ॉल्ट रूप से रूट के रूप में योनि लॉगिन


92

समस्या: अक्सर पहला कमांड जो मैं अपने बॉक्स में टाइप करता हूं su -

प्रश्न: मैं vagrant sshडिफ़ॉल्ट रूप से रूट उपयोगकर्ता का उपयोग कैसे करूं ?

संस्करण: योनि 1.6.5


स्टैक ओवरफ्लो प्रोग्रामिंग और विकास प्रश्नों के लिए एक साइट है। यह प्रश्न ऑफ़-टॉपिक प्रतीत होता है क्योंकि यह प्रोग्रामिंग या विकास के बारे में नहीं है। देखें किन विषयों मैं यहाँ के बारे में पूछ सकते हैं सहायता केंद्र में। शायद सुपर यूजर या यूनिक्स और लिनक्स स्टैक एक्सचेंज पूछने के लिए एक बेहतर जगह होगी। यह भी देखें कि मैं देव ऑप्स के बारे में प्रश्न कहां से पोस्ट करूं?
jww

जवाबों:


141

यह उपयोगी है:

sudo passwd root

किसी को भी, जो पहले योनि में रूट पासवर्ड सेट करने की आवश्यकता से पकड़ा गया है


1
मेरी ज़िंदगी बचाई। क्या आप जानते हैं कि यदि योनि कैसे काम करती है तो इसका कोई नतीजा है?
मैट

1
यहाँ सबक यह है कि यदि आप एक बेस बॉक्स बनाते हैं, तो हैशिकॉर्प द्वारा सुझाए गए सम्मेलनों का पालन करें और अपने रूट पासव को 'योनि' में सेट करें। देख docs.vagrantup.com/v2/boxes/base.html
माइक डी

क्या सर्वर के साथ कोई संभावित सुरक्षा समस्याएं हैं, जिनके पास आपके व्यक्तिगत कंप्यूटर पर वास्तव में आसानी से अनुमानित रूट पासवर्ड पड़ा हुआ है? मुझे लगता है कि नेटवर्क सेटिंग्स इसकी मदद करती हैं, लेकिन मुझे आश्चर्य है।
नाथन बसानी

1
संकेत के लिए धन्यवाद। यह पता चलता है कि उबंटू के आवारा बक्से रूट उपयोगकर्ता के लिए एक यादृच्छिक पासवर्ड सेट करते हैं ( समूहों को देखें । देखें )। तो हमेशा एक रूट पासवर्ड पहले सेट करना होगा।
14

धन्यवाद, वास्तव में इसकी जरूरत है
ka_lin

110

समाधान:
अपने में निम्नलिखित जोड़ें Vagrantfile:

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

जब आप vagrant sshइसके बाद, आप के रूप में लॉग इन करेंगे rootऔर निम्नलिखित की उम्मीद करनी चाहिए:

==> mybox: Waiting for machine to boot. This may take a few minutes...
    mybox: SSH address: 127.0.0.1:2222
    mybox: SSH username: root
    mybox: SSH auth method: password
    mybox: Warning: Connection timeout. Retrying...
    mybox: Warning: Remote connection disconnect. Retrying...
==> mybox: Inserting Vagrant public key within guest...
==> mybox: Key inserted! Disconnecting and reconnecting using new SSH key...
==> mybox: Machine booted and ready!

अपडेट 23-जून -2015 : यह संस्करण 1.7.2 के लिए भी काम करता है। 1.7.0 से कुंजीयन सुरक्षा में सुधार हुआ है; यह तकनीक पिछली विधि पर वापस जाती है जो एक ज्ञात निजी कुंजी का उपयोग करती है। यह समाधान एक ऐसे बॉक्स के लिए उपयोग करने का इरादा नहीं है जो प्रकाशन से पहले किए गए उचित सुरक्षा उपायों के बिना सार्वजनिक रूप से सुलभ हो।

संदर्भ:


क्या रनिंग के दौरान पासवर्ड प्रांप्ट होने का कोई कारण हो सकता है vagrant ssh? (वर्णित बदलाव करने के बाद)
वैग्रंट

@RobertIgnat संभवत: आपको अपने रूट पासव को सेट करने की ज़रूरत है ताकि आपके config.ssh.passwordमूल्य में आपके पास क्या हो । आपको config.ssh.*अपने बॉक्स तक पहुंचने के लिए नई जोड़ी गई लाइनों के बारे में टिप्पणी करने और फिर रूट पासवर्ड को बदलने में सक्षम होना चाहिए sudo passwd root
माइक डी।

11
एक मशीन के लिए जो पहले से ही प्रावधान किया गया है, उपरोक्त कार्य करें, और करेंmkdir -m 700 /root/.ssh && cp ~vagrant/.ssh/authorized_keys /root/.ssh
फेलिप अल्वारेज़

2
एक ताज़े वैग्रंट इंस्‍टॉल के लिए काम नहीं करता है, शायद इसलिए कि जब कोई उदाहरण ubuntu / xenial का उपयोग करता है, तो कोई वहां पके हुए उपयोगकर्ता लॉगिन का उपयोग करने के लिए है। (यह भी देखें stackoverflow.com/a/40478402/605463 )
axd

1
किसी और का उपयोग करने के लिए centos/7: यह बॉक्स एक यादृच्छिक रूट पासवर्ड सेट करता है; कोई रूट कर सकता है vagrant sshऔर फिर sudo suरूट कर सकता है , लेकिन (जो मैं बता सकता हूं) से vagrant upइस वीएम का उपयोग करके एक नए सिरे से कॉन्फिग सेटिंग्स काम नहीं करती हैं ।
mululse

35

यह काम करता है यदि आप ubuntu / trusty64 बॉक्स पर हैं:

vagrant ssh

एक बार जब आप ubuntu बॉक्स में हैं:

sudo su

अब आप रूट यूजर हैं। आप नीचे दिखाए अनुसार रूट पासवर्ड अपडेट कर सकते हैं:

sudo -i
passwd

अब फाइल में नीचे की लाइन को एडिट करें /etc/ssh/sshd_config

PermitRootLogin yes

इसके अलावा, अपना स्वयं का वैकल्पिक उपयोगकर्ता नाम बनाना सुविधाजनक है:

adduser johndoe

तब तक प्रतीक्षा करें जब तक यह पासवर्ड न मांगे।


12

यदि Vagrantfileनीचे दिया गया है:

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

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


उदाहरण के लिए, आधिकारिक ubuntu14.04 बॉक्स PermitRootLogin yesमें सेट नहीं है /etc/ssh/sshd_config

इसलिए यदि आप चाहते हैं कि एक बॉक्स रूट डिफॉल्ट के रूप में लॉगिन कर सके (केवल वैग्रांटफाइल, कोई और काम नहीं), तो आपको यह करना होगा:

  1. उपयोगकर्ता नाम vagrant(जो भी नाम लेकिन मूल) द्वारा एक vm सेटअप करें

  2. लॉगिन और sshd config फाइल को एडिट करें।

    ubuntu: संपादित करें /etc/ssh/sshd_config, सेट करें PermitRootLogin yes

    अन्य: ....

    (मैं केवल ubuntu का उपयोग करता हूं, अन्य प्लेटफार्मों के वर्कअराउंड को जोड़ने के लिए स्वतंत्र महसूस करता हूं)

  3. एक नया आधार बॉक्स बनाएँ:

    vagrant package --base your-vm-name

    यह एक फ़ाइल बनाएँ package.box

  4. योनि में उस बेस बॉक्स को जोड़ें:

    vagrant box add ubuntu-root file:///somepath/package.box

    फिर, आपको vm के निर्माण के लिए इस बेस बॉक्स का उपयोग करना होगा जो रूट के रूप में ऑटो लॉगिन की अनुमति देता है।

  5. द्वारा मूल vm को नष्ट करें vagrant destroy

  6. मूल संपादित करें Vagrantfile, बॉक्स का नाम ubuntu-rootऔर उपयोगकर्ता नाम बदलें root, फिर vagrant upएक नया बनाएं।

यह पता लगाने के लिए मुझे कुछ समय लगा, यह मेरी राय में बहुत जटिल है। आशा है कि इस में सुधार होगा।


10

पहले से लॉगिन करने के लिए रूट को रूट करने की अनुमति नहीं है !!!

/etc/ssh/sshd_configफ़ाइल में नीचे दिए गए कॉन्फ़िगरेशन कोड को रखें ।

PermitRootLogin yes

एसओ में आपका स्वागत है। कृपया उत्तर में पर्याप्त विवरण और संदर्भ जोड़ें। विशेषकर जब पुराने प्रश्न का उत्तर कुछ अच्छे उत्तरों के साथ दिया गया हो
Jayan

यह मेरे लिए मुख्य समाधान की तुलना में अधिक उपयोगी था। ssh आपको डिफ़ॉल्ट रूप से रूट के रूप में लॉगिन नहीं करने देता है।
बम्बिगबैंग

2

नोट: केवल स्थानीय विकास के लिए इस पद्धति का उपयोग करें, यह सुरक्षित नहीं है । आप बॉक्स को प्रोविजन करते समय पासवर्ड और ssh कॉन्फिगरेशन सेटअप कर सकते हैं। उदाहरण के लिए debian/stretch64बॉक्स के साथ यह मेरी प्रावधान स्क्रिप्ट है:

config.vm.provision "shell", inline: <<-SHELL
    echo -e "vagrant\nvagrant" | passwd root
    echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
    sed -in 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
    service ssh restart
SHELL

यह रूट पासवर्ड सेट करेगा vagrantऔर पासवर्ड से रूट लॉगिन की अनुमति देगा। यदि आप private_networkIP पते के साथ उपयोग कर रहे हैं 192.168.10.37तो आप के साथ ssh कर सकते हैंssh root@192.168.10.37

आपको डिफ़ॉल्ट फ़ाइल के आधार पर उसे echoऔर sedकमांड को बदलना पड़ सकता है sshd_config


1

इसे Vagrantfileमेरे लिए काम करने के लिए जोड़ना । ये पंक्तियाँ sudo su -आपके द्वारा लॉगिन करने पर हर बार दर्ज करने के बराबर हैं । कृपया ध्यान दें कि इसके लिए वीएम को पुन: व्यवस्थित करने की आवश्यकता है।

config.vm.provision "shell", inline: <<-SHELL
    echo "sudo su -" >> .bashrc
SHELL

अपने बहुत ही सरल समाधान के लिए धन्यवाद! गूंज "sudo -s" >> .Bashrc बेहतर होगा।
होनिक्स

1

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

तो यह एक मेरी राय में जानने लायक है:

vagrant ssh servername -c "echo vagrant | sudo -S shutdown 0"

vagrantक्या पासवर्ड sudo कमांड में गूँज रहा है, क्योंकि जैसा कि हम सभी जानते हैं, योनि खाते में sudo विशेषाधिकार हैं और जब आप sudo करते हैं, तो आपको उपयोगकर्ता खाते के पासवर्ड को निर्दिष्ट करने की आवश्यकता है, रूट नहीं..और डिफ़ॉल्ट रूप से, निश्चित रूप से। योनि उपयोगकर्ता का पासवर्ड है vagrant!

डिफ़ॉल्ट रूप से आपको शटडाउन करने के लिए रूट विशेषाधिकार की आवश्यकता होती है, इसलिए मुझे लगता है कि शटडाउन करना एक अच्छा परीक्षण है।

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

उम्मीद है की यह मदद करेगा।


0

मुझे रूट के रूप में लॉगिन करने की कोशिश करते समय प्रोविजनिंग से कुछ परेशानी थी PermitRootLogin yes। मैंने इसे बनाया है ताकि केवल vagrant sshकमांड प्रभावित हो:

# Login as root when doing vagrant ssh
if ARGV[0]=='ssh'
  config.ssh.username = 'root'
end

-8
vagrant destroy
vagrant up

कृपया इसे योनि फ़ाइल में जोड़ें:

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

यह कुछ भी नहीं करता है क्योंकि डिफ़ॉल्ट उपयोगकर्ता पहले से ही योनि है
जमाल

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