Sorun: kutularıma yazdığım ilk komut sıklıkla su -
.
Soru: vagrant ssh
Kök kullanıcıyı varsayılan olarak nasıl kullanabilirim?
Sürüm: vagrant 1.6.5
Sorun: kutularıma yazdığım ilk komut sıklıkla su -
.
Soru: vagrant ssh
Kök kullanıcıyı varsayılan olarak nasıl kullanabilirim?
Sürüm: vagrant 1.6.5
Yanıtlar:
Bu kullanışlı:
sudo passwd root
Önce serseride bir kök şifre belirleme ihtiyacı duyan herkes için
Çözüm:
Şunları ekleyin Vagrantfile
:
config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'
Ne zaman vagrant ssh
bundan böyle, sen olarak giriş edecek root
ve aşağıdaki beklemelidir:
==> 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 Haziran 2015 Güncellemesi: Bu, 1.7.2 sürümünde de çalışır. Anahtarlama güvenliği 1.7.0'dan beri geliştirildi; bu teknik, bilinen bir özel anahtar kullanan önceki yönteme göre geçersiz kılar. Bu çözümün, yayınlamadan önce uygun güvenlik önlemleri alınmadan herkesin erişebileceği bir kutu için kullanılması amaçlanmamıştır.
Referans:
vagrant ssh
mi? (açıklanan değişiklikleri yaptıktan sonra) Vagrant version 1.7.2
config.ssh.password
değerinizdeki ile eşleşecek şekilde ayarlamanız gerektiğidir . config.ssh.*
kutunuza erişmek için yeni eklenen satırları yorumlayabilmeli ve ardından kök şifresini değiştirebilmelisiniz sudo passwd root
.
mkdir -m 700 /root/.ssh && cp ~vagrant/.ssh/authorized_keys /root/.ssh
centos/7
: Bu kutu rastgele bir kök parolası belirler; bir olabilir vagrant ssh
ve sonra sudo su
kök, ancak (söyleyebildiğim kadarıyla) yapılandırma ayarları vagrant up
bu VM'yi kullanarak yeni bir üzerinde çalışmıyor .
Bu, ubuntu / trusty64 kutusundaysanız çalışır:
vagrant ssh
Ubuntu kutusuna girdikten sonra:
sudo su
Artık root kullanıcısınız. Root parolasını aşağıda gösterildiği gibi güncelleyebilirsiniz:
sudo -i
passwd
Şimdi dosyada aşağıdaki satırı düzenleyin /etc/ssh/sshd_config
PermitRootLogin yes
Ayrıca, kendi alternatif kullanıcı adınızı oluşturmanız da uygundur:
adduser johndoe
Şifre isteyene kadar bekleyin.
Eğer Vagrantfile
aşağıdaki gibi:
config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'
Ancak serseri hala size root şifresi soruyor, büyük olasılıkla kullandığınız temel kutu, kök oturumuna izin verecek şekilde yapılandırılmamış.
Örneğin, resmi ubuntu14.04 kutusu set yok PermitRootLogin yes
içinde /etc/ssh/sshd_config
.
Dolayısıyla, bir kutunun kök varsayılan olarak oturum açmasını istiyorsanız (yalnızca Vagrantfile, artık çalışma yok), yapmanız gerekenler:
Kullanıcı vagrant
adına göre bir vm kurun (isim dışında kök)
Sshd yapılandırma dosyasına giriş yapın ve dosyayı düzenleyin.
ubuntu: düzenle /etc/ssh/sshd_config
, ayarla PermitRootLogin yes
diğerleri: ....
(Sadece ubuntu kullanıyorum, diğer platformların geçici çözümlerini eklemekten çekinmeyin)
Yeni bir temel kutu oluşturun:
vagrant package --base your-vm-name
bu bir dosya oluştur package.box
Bu temel kutuyu serseriye ekle:
vagrant box add ubuntu-root file:///somepath/package.box
daha sonra, root olarak otomatik oturum açmaya izin veren vm oluşturmak için bu temel kutuyu kullanmanız gerekir.
Orijinal vm'yi şu şekilde yok edin: vagrant destroy
Orijinali düzenleyin , Vagrantfile
kutu adını olarak ubuntu-root
ve kullanıcı adını olarak değiştirin root
, ardından vagrant up
yeni bir tane oluşturun.
Anlaması biraz zamana mal oldu, bence çok karmaşık. Umut serseri bunu iyileştirir.
Unutmayın, root un daha önce oturum açmasına izin verilir !!!
Aşağıdaki yapılandırma kodunu /etc/ssh/sshd_config
dosyaya yerleştirin.
PermitRootLogin yes
Bunu Vagrantfile
benim için çalışılana eklemek . Bu satırlar, sudo su -
her oturum açtığınızda girmenizle eşdeğerdir . Lütfen bunun sanal makinenin yeniden yapılandırılmasını gerektirdiğini unutmayın.
config.vm.provision "shell", inline: <<-SHELL
echo "sudo su -" >> .bashrc
SHELL
-i
istiyorsun? 😅
Not: Bu yöntemi yalnızca yerel geliştirme için kullanın, güvenli değildir . Kutuyu hazırlarken parola ve ssh yapılandırmasını ayarlayabilirsiniz. Örneğin, debian/stretch64
kutuyla birlikte bu benim provizyon komut dosyam:
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
Bu, root şifresini ayarlayacak vagrant
ve şifre ile root girişine izin verecektir . private_network
Say ip adresi ile kullanıyorsanız 192.168.10.37
, ssh yapabilirsinizssh root@192.168.10.37
Varsayılan dosyaya bağlı olarak bunu echo
ve sed
komutları değiştirmeniz gerekebilir sshd_config
.
Bunun eski bir soru olduğunu biliyorum, ancak orijinal soruya baktığımızda, kullanıcı sadece bir komutu root olarak çalıştırmak istemiş gibi görünüyor, bir cevap ararken ve soruyla karşılaştığımda yapmam gereken şey bu.
Yani bu bence bilmeye değer:
vagrant ssh servername -c "echo vagrant | sudo -S shutdown 0"
vagrant
sudo komutunda yankılanan şifredir, çünkü hepimizin bildiği gibi, serseri hesabın sudo ayrıcalıkları vardır ve sudo yaptığınızda kullanıcı hesabının şifresini belirlemeniz gerekir, root değil ... ve tabii ki varsayılan olarak, serseri kullanıcının şifresi vagrant
!
Varsayılan olarak, kapatmak için kök ayrıcalıklarına ihtiyacınız vardır, bu nedenle kapatma yapmak iyi bir testtir.
Açıkçası, bu serseri ortam için yalnızca bir sunucu adı varsa, bir sunucu adı belirlemenize gerek yoktur. Ayrıca, ana makineye yerel serseri sanal makineden bahsediyoruz, bu yüzden görebildiğim herhangi bir güvenlik sorunu yok.
Bu yardımcı olur umarım.
vagrant destroy
vagrant up
Lütfen bunu serseri dosyasına ekleyin:
config.ssh.username = 'vagrant'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'