Vấn đề: thường là lệnh đầu tiên tôi nhập vào các hộp của mình su -
.
Câu hỏi: Làm cách nào để vagrant ssh
sử dụng root user theo mặc định?
Phiên bản: vagrant 1.6.5
Vấn đề: thường là lệnh đầu tiên tôi nhập vào các hộp của mình su -
.
Câu hỏi: Làm cách nào để vagrant ssh
sử dụng root user theo mặc định?
Phiên bản: vagrant 1.6.5
Câu trả lời:
Điều này rất hữu ích:
sudo passwd root
đối với bất kỳ ai bị bắt gặp trước yêu cầu đặt mật khẩu gốc trong vagrant
Giải pháp:
Thêm phần sau vào Vagrantfile
:
config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'
Khi bạn kể vagrant ssh
từ đó trở đi, bạn sẽ đăng nhập như root
và mong đợi như sau:
==> 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!
Cập nhật ngày 23 tháng 6 năm 2015: Bản này cũng hoạt động cho phiên bản 1.7.2. Bảo mật khóa đã được cải thiện kể từ 1.7.0; kỹ thuật này ghi đè trở lại phương thức trước đó sử dụng khóa riêng đã biết. Giải pháp này không nhằm mục đích sử dụng cho một hộp có thể truy cập công khai mà không có các biện pháp bảo mật thích hợp được thực hiện trước khi xuất bản.
Tài liệu tham khảo:
vagrant ssh
? (sau khi thực hiện những thay đổi mô tả) Vagrant phiên bản 1.7.2
config.ssh.password
giá trị của mình . bạn sẽ có thể nhận xét các dòng mới được thêm vào config.ssh.*
để truy cập hộp của bạn và sau đó thay đổi mật khẩu gốc thông qua sudo passwd root
.
mkdir -m 700 /root/.ssh && cp ~vagrant/.ssh/authorized_keys /root/.ssh
centos/7
: Hộp này đặt mật khẩu gốc ngẫu nhiên; người ta có thể vagrant ssh
và sau đó sudo su
root, nhưng (theo những gì tôi có thể nói) thì cài đặt cấu hình không hoạt động trên một máy mới vagrant up
sử dụng máy ảo này.
Điều này hoạt động nếu bạn đang sử dụng hộp ubuntu / trusty64:
vagrant ssh
Khi bạn ở trong hộp ubuntu:
sudo su
Bây giờ bạn là người dùng root. Bạn có thể cập nhật mật khẩu gốc như hình dưới đây:
sudo -i
passwd
Bây giờ hãy chỉnh sửa dòng bên dưới trong tệp /etc/ssh/sshd_config
PermitRootLogin yes
Ngoài ra, thật thuận tiện để tạo tên người dùng thay thế của riêng bạn:
adduser johndoe
Chờ cho đến khi nó yêu cầu mật khẩu.
Nếu Vagrantfile
như dưới đây:
config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'
Nhưng vagrant vẫn hỏi bạn mật khẩu root, rất có thể hộp cơ sở bạn đã sử dụng không được cấu hình để cho phép đăng nhập root.
Ví dụ, hộp ubuntu14.04 chính thức không được đặt PermitRootLogin yes
trong /etc/ssh/sshd_config
.
Vì vậy, nếu bạn muốn một hộp có thể đăng nhập mặc định gốc (chỉ Vagrantfile, không làm việc nữa), bạn phải:
Thiết lập vm bằng tên người dùng vagrant
(bất kỳ tên nào trừ tên gốc)
Đăng nhập và chỉnh sửa tệp cấu hình sshd.
ubuntu: chỉnh sửa /etc/ssh/sshd_config
, thiết lập PermitRootLogin yes
khác: ....
(Tôi chỉ sử dụng ubuntu, vui lòng thêm giải pháp thay thế cho các nền tảng khác)
Xây dựng một hộp cơ sở mới:
vagrant package --base your-vm-name
cái này tạo ra một tệp package.box
Thêm hộp cơ sở đó vào vagrant:
vagrant box add ubuntu-root file:///somepath/package.box
sau đó, bạn cần sử dụng hộp cơ sở này để xây dựng vm cho phép đăng nhập tự động với tư cách là người chủ.
Hủy vm gốc bằng cách vagrant destroy
Chỉnh sửa bản gốc Vagrantfile
, thay đổi tên hộp thành ubuntu-root
và tên người dùng root
, sau đó vagrant up
tạo một tên mới.
Tôi phải mất một thời gian để tìm hiểu, theo tôi thì nó quá phức tạp. Hy vọng người lang thang sẽ cải thiện điều này.
Đừng quên root được phép root để đăng nhập trước !!!
Đặt mã cấu hình bên dưới vào /etc/ssh/sshd_config
tệp.
PermitRootLogin yes
Lưu ý: Chỉ sử dụng phương pháp này để phát triển cục bộ, nó không an toàn . Bạn có thể thiết lập mật khẩu và cấu hình ssh trong khi cấp phép hộp. Ví dụ với debian/stretch64
hộp đây là kịch bản cung cấp của tôi:
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
Thao tác này sẽ đặt mật khẩu root thành vagrant
và cho phép đăng nhập root bằng mật khẩu. Nếu bạn đang sử dụng private_network
nói với địa chỉ ip 192.168.10.37
thì bạn có thể ssh vớissh root@192.168.10.37
Bạn có thể cần thay đổi điều đó echo
và sed
các lệnh tùy thuộc vào sshd_config
tệp mặc định .
Thêm điều này vào công Vagrantfile
việc cho tôi. Các dòng này tương đương với việc bạn nhập sudo su -
mỗi khi đăng nhập. Xin lưu ý rằng điều này yêu cầu cấp lại máy ảo.
config.vm.provision "shell", inline: <<-SHELL
echo "sudo su -" >> .bashrc
SHELL
Tôi biết đây là một câu hỏi cũ, nhưng nhìn vào câu hỏi ban đầu, có vẻ như người dùng chỉ muốn chạy một lệnh dưới quyền root, đó là điều tôi cần làm khi đang tìm kiếm câu trả lời và tình cờ gặp câu hỏi.
Vì vậy, điều này đáng để biết theo ý kiến của tôi:
vagrant ssh servername -c "echo vagrant | sudo -S shutdown 0"
vagrant
là mật khẩu được lặp lại trong lệnh sudo, bởi vì như chúng ta đều biết, tài khoản vagrant có đặc quyền sudo và khi bạn sudo, bạn cần chỉ định mật khẩu của tài khoản người dùng, không phải root..và tất nhiên theo mặc định, mật khẩu của người dùng lang thang là vagrant
!
Theo mặc định, bạn cần có quyền root để tắt máy, vì vậy tôi nghĩ việc tắt máy là một bài kiểm tra tốt.
Rõ ràng là bạn không cần chỉ định tên máy chủ nếu chỉ có một tên cho môi trường lang thang đó. Ngoài ra, chúng tôi đang nói về máy ảo lang thang cục bộ với máy chủ, vì vậy thực sự không có bất kỳ vấn đề bảo mật nào mà tôi có thể thấy.
Hi vọng điêu nay co ich.
vagrant destroy
vagrant up
Vui lòng thêm cái này vào tệp vagrant:
config.ssh.username = 'vagrant'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'