Menyelamatkan hidupku. Apakah Anda tahu apakah ini berdampak pada tindakan gelandangan?
Matt
1
Pelajarannya di sini adalah jika Anda membuat kotak dasar, ikuti konvensi yang disarankan oleh Hashicorp dan setel sandi root Anda ke 'gelandangan'. lihat docs.vagrantup.com/v2/boxes/base.html
Mike D
Apakah ada masalah keamanan potensial dengan server yang memiliki kata sandi root yang sangat mudah ditebak di komputer pribadi Anda? Saya membayangkan pengaturan jaringan membantu dengan ini, tetapi saya bertanya-tanya.
Nathan Basanese
1
Terima kasih atas petunjuknya. Ternyata kotak gelandangan Ubuntu menetapkan kata sandi acak untuk pengguna root (Lihat groups.google.com/d/msg/vagrant-up/xMWKkKW24xs/f5OaV5QWAp4J ). Jadi seseorang harus selalu mengatur kata sandi root terlebih dahulu.
asmaier
Terima kasih, sangat membutuhkan ini
ka_lin
110
Solusi:
Tambahkan yang berikut ini ke Anda Vagrantfile:
Ketika Anda vagrant sshselanjutnya, Anda akan login sebagai rootdan harus mengharapkan yang berikut:
==> 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!
Pembaruan 23-Jun-2015:
Ini berfungsi untuk versi 1.7.2 juga. Keamanan keying telah meningkat sejak 1.7.0; teknik ini menggantikan kembali ke metode sebelumnya yang menggunakan kunci pribadi yang diketahui. Solusi ini tidak dimaksudkan untuk digunakan pada kotak yang dapat diakses publik tanpa tindakan pengamanan yang tepat dilakukan sebelum penerbitan.
Mungkinkah ada alasan untuk mendapatkan prompt kata sandi saat dijalankan vagrant ssh? (setelah melakukan perubahan yang dijelaskan) Vagrant versi 1.7.2
roign
@RobertIgnat mungkin Anda perlu menyetel sandi root agar sesuai dengan nilai yang Anda miliki config.ssh.password. Anda harus dapat memberi komentar pada config.ssh.*baris yang baru ditambahkan untuk mengakses kotak Anda dan kemudian mengubah kata sandi root melalui sudo passwd root.
Mike D
11
Untuk mesin yang telah disediakan, lakukan hal di atas, dan lakukanmkdir -m 700 /root/.ssh && cp ~vagrant/.ssh/authorized_keys /root/.ssh
Felipe Alvarez
2
tidak berfungsi untuk instalasi Vagrant baru, mungkin karena ketika seseorang menggunakan misalnya ubuntu / xenial, seseorang HARUS menggunakan login pengguna yang dipanggang di sana. (lihat juga stackoverflow.com/a/40478402/605463 )
axd
1
Untuk orang lain yang menggunakan centos/7: Kotak ini menetapkan kata sandi root acak; satu dapat vagrant sshdan kemudian sudo suke root, tetapi (dari apa yang saya tahu) pengaturan konfigurasi tidak berfungsi pada saat baru vagrant upmenggunakan VM ini.
mhulse
37
Ini berfungsi jika Anda berada di kotak ubuntu / trusty64:
vagrant ssh
Setelah Anda berada di kotak ubuntu:
sudo su
Sekarang Anda adalah pengguna root. Anda dapat memperbarui kata sandi root seperti yang ditunjukkan di bawah ini:
sudo -i
passwd
Sekarang edit baris di bawah ini di file /etc/ssh/sshd_config
PermitRootLoginyes
Selain itu, akan lebih mudah membuat nama pengguna alternatif Anda sendiri:
Tetapi gelandangan masih meminta Anda kata sandi root, kemungkinan besar kotak dasar yang Anda gunakan tidak dikonfigurasi untuk mengizinkan login root.
Misalnya, kotak ubuntu14.04 resmi tidak menetapkan PermitRootLogin yesdi /etc/ssh/sshd_config.
Jadi Jika Anda ingin sebuah kotak dapat login sebagai root default (hanya Vagrantfile, tidak ada lagi pekerjaan), Anda harus:
Siapkan vm dengan nama pengguna vagrant(nama apa pun kecuali root)
Selamat datang di SO. Harap tambahkan detail dan konteks yang cukup untuk jawaban. Terutama saat menjawab pertanyaan lama dengan jawaban yang bagus
Jayan
ini lebih berguna bagi saya daripada solusi utama. ssh tidak mengizinkan Anda masuk sebagai root secara default.
bmbigbang
2
Menambahkan ini ke yang Vagrantfileberhasil untuk saya. Baris ini sama dengan yang Anda masukkan sudo su -setiap kali Anda masuk. Harap perhatikan bahwa ini memerlukan VM untuk penyediaan ulang.
config.vm.provision "shell", inline:<<-SHELL
echo "sudo su -" >> .bashrc
SHELL
Terima kasih atas solusi Anda yang sangat sederhana! echo "sudo -s" >> .bashrc akan lebih baik.
Honiix
@Honiix Maksudmu -i? 😅
Thomas Gotwig
@ThomasGotwig Anda benar, `-i` lebih umum daripada `-s`, keduanya berfungsi tergantung pada apa yang ingin Anda lakukan. Tapi maksud saya adalah yang terbaik adalah menghindari merantai sudo dan su.
Honiix
2
Catatan: Hanya gunakan metode ini untuk pengembangan lokal, ini tidak aman . Anda dapat mengatur sandi dan konfigurasi ssh saat menyediakan kotak. Misalnya dengan debian/stretch64kotak ini adalah skrip penyediaan saya:
Ini akan mengatur kata sandi root vagrantdan mengizinkan login root dengan kata sandi. Jika Anda menggunakan private_networksay with ip address 192.168.10.37maka Anda bisa ssh denganssh [email protected]
Anda mungkin perlu mengubahnya echodansed perintah tergantung pada sshd_configfile default .
Saya tahu ini adalah pertanyaan lama, tetapi melihat pertanyaan asli, sepertinya pengguna hanya ingin menjalankan perintah sebagai root, itulah yang perlu saya lakukan ketika saya mencari jawaban dan menemukan pertanyaan itu.
vagrant adalah kata sandi di-echo ke dalam perintah sudo, karena seperti yang kita semua tahu, akun gelandangan memiliki hak sudo dan ketika Anda sudo, Anda perlu menentukan kata sandi akun pengguna, bukan root..dan tentu saja secara default, kata sandi pengguna gelandangan adalah vagrant !
Secara default Anda memerlukan hak akses root untuk mematikan jadi saya kira melakukan shutdown adalah ujian yang bagus.
Jelas Anda tidak perlu menentukan nama server jika hanya ada satu untuk lingkungan gelandangan itu. Juga, kita berbicara tentang mesin virtual gelandangan lokal kepada tuan rumah, jadi sebenarnya tidak ada masalah keamanan yang saya lihat.
Saya mengalami beberapa masalah dengan penyediaan saat mencoba masuk sebagai root, bahkan dengan PermitRootLogin yes. Saya membuatnya jadi hanya vagrant sshperintah yang terpengaruh:
# Login as root when doing vagrant ssh
if ARGV[0]=='ssh'
config.ssh.username = 'root'
end
Jawaban:
Ini berguna:
bagi siapa saja yang terjebak oleh kebutuhan untuk mengatur kata sandi root di gelandangan terlebih dahulu
sumber
Solusi:
Tambahkan yang berikut ini ke Anda
Vagrantfile
:config.ssh.username = 'root' config.ssh.password = 'vagrant' config.ssh.insert_key = 'true'
Ketika Anda
vagrant ssh
selanjutnya, Anda akan login sebagairoot
dan harus mengharapkan yang berikut:Pembaruan 23-Jun-2015: Ini berfungsi untuk versi 1.7.2 juga. Keamanan keying telah meningkat sejak 1.7.0; teknik ini menggantikan kembali ke metode sebelumnya yang menggunakan kunci pribadi yang diketahui. Solusi ini tidak dimaksudkan untuk digunakan pada kotak yang dapat diakses publik tanpa tindakan pengamanan yang tepat dilakukan sebelum penerbitan.
Referensi:
sumber
vagrant ssh
? (setelah melakukan perubahan yang dijelaskan) Vagrant versi 1.7.2config.ssh.password
. Anda harus dapat memberi komentar padaconfig.ssh.*
baris yang baru ditambahkan untuk mengakses kotak Anda dan kemudian mengubah kata sandi root melaluisudo passwd root
.mkdir -m 700 /root/.ssh && cp ~vagrant/.ssh/authorized_keys /root/.ssh
centos/7
: Kotak ini menetapkan kata sandi root acak; satu dapatvagrant ssh
dan kemudiansudo su
ke root, tetapi (dari apa yang saya tahu) pengaturan konfigurasi tidak berfungsi pada saat baruvagrant up
menggunakan VM ini.Ini berfungsi jika Anda berada di kotak ubuntu / trusty64:
Setelah Anda berada di kotak ubuntu:
Sekarang Anda adalah pengguna root. Anda dapat memperbarui kata sandi root seperti yang ditunjukkan di bawah ini:
Sekarang edit baris di bawah ini di file
/etc/ssh/sshd_config
PermitRootLogin yes
Selain itu, akan lebih mudah membuat nama pengguna alternatif Anda sendiri:
Tunggu sampai ia meminta kata sandi.
sumber
Jika
Vagrantfile
seperti di bawah ini:config.ssh.username = 'root' config.ssh.password = 'vagrant' config.ssh.insert_key = 'true'
Tetapi gelandangan masih meminta Anda kata sandi root, kemungkinan besar kotak dasar yang Anda gunakan tidak dikonfigurasi untuk mengizinkan login root.
Misalnya, kotak ubuntu14.04 resmi tidak menetapkan
PermitRootLogin yes
di/etc/ssh/sshd_config
.Jadi Jika Anda ingin sebuah kotak dapat login sebagai root default (hanya Vagrantfile, tidak ada lagi pekerjaan), Anda harus:
Siapkan vm dengan nama pengguna
vagrant
(nama apa pun kecuali root)Masuk dan edit file konfigurasi sshd.
ubuntu: edit
/etc/ssh/sshd_config
, aturPermitRootLogin yes
lainnya: ....
(Saya hanya menggunakan ubuntu, jangan ragu untuk menambahkan solusi dari platform lain)
Bangun kotak dasar baru:
ini membuat file
package.box
Tambahkan kotak dasar itu ke gelandangan:
kemudian, Anda perlu menggunakan kotak dasar ini untuk membangun vm yang memungkinkan login otomatis sebagai root.
Hancurkan vm asli dengan
vagrant destroy
Edit yang asli
Vagrantfile
, ubah nama kotak menjadiubuntu-root
dan nama pengguna menjadiroot
, laluvagrant up
buat yang baru.Saya butuh waktu untuk mengetahuinya, itu terlalu rumit menurut saya. Semoga gelandangan bisa memperbaiki ini.
sumber
Jangan lupa root diperbolehkan root untuk login sebelumnya !!!
Tempatkan kode konfigurasi di bawah ini dalam
/etc/ssh/sshd_config
file.PermitRootLogin yes
sumber
Menambahkan ini ke yang
Vagrantfile
berhasil untuk saya. Baris ini sama dengan yang Anda masukkansudo su -
setiap kali Anda masuk. Harap perhatikan bahwa ini memerlukan VM untuk penyediaan ulang.config.vm.provision "shell", inline: <<-SHELL echo "sudo su -" >> .bashrc SHELL
sumber
-i
? 😅Catatan: Hanya gunakan metode ini untuk pengembangan lokal, ini tidak aman . Anda dapat mengatur sandi dan konfigurasi ssh saat menyediakan kotak. Misalnya dengan
debian/stretch64
kotak ini adalah skrip penyediaan saya:Ini akan mengatur kata sandi root
vagrant
dan mengizinkan login root dengan kata sandi. Jika Anda menggunakanprivate_network
say with ip address192.168.10.37
maka Anda bisa ssh denganssh [email protected]
Anda mungkin perlu mengubahnya
echo
dansed
perintah tergantung padasshd_config
file default .sumber
Saya tahu ini adalah pertanyaan lama, tetapi melihat pertanyaan asli, sepertinya pengguna hanya ingin menjalankan perintah sebagai root, itulah yang perlu saya lakukan ketika saya mencari jawaban dan menemukan pertanyaan itu.
Jadi yang ini perlu diketahui menurut saya:
vagrant ssh servername -c "echo vagrant | sudo -S shutdown 0"
vagrant
adalah kata sandi di-echo ke dalam perintah sudo, karena seperti yang kita semua tahu, akun gelandangan memiliki hak sudo dan ketika Anda sudo, Anda perlu menentukan kata sandi akun pengguna, bukan root..dan tentu saja secara default, kata sandi pengguna gelandangan adalahvagrant
!Secara default Anda memerlukan hak akses root untuk mematikan jadi saya kira melakukan shutdown adalah ujian yang bagus.
Jelas Anda tidak perlu menentukan nama server jika hanya ada satu untuk lingkungan gelandangan itu. Juga, kita berbicara tentang mesin virtual gelandangan lokal kepada tuan rumah, jadi sebenarnya tidak ada masalah keamanan yang saya lihat.
Semoga ini membantu.
sumber
Saya mengalami beberapa masalah dengan penyediaan saat mencoba masuk sebagai root, bahkan dengan
PermitRootLogin yes
. Saya membuatnya jadi hanyavagrant ssh
perintah yang terpengaruh:sumber
Harap tambahkan ini ke file gelandangan:
sumber