문제점 : 자주 상자에 입력하는 첫 번째 명령은 su -
.
질문 : vagrant ssh
기본적으로 루트 사용자를 사용하려면 어떻게해야 합니까?
버전 : vagrant 1.6.5
답변
이것은 유용합니다.
sudo passwd root
먼저 vagrant에서 루트 암호를 설정해야하는 필요성에 사로 잡힌 사람을 위해
답변
솔루션 :
다음을 추가하십시오 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!
2015 년 6 월 23 일 업데이트 :
1.7.2 버전에서도 작동합니다. 1.7.0 이후 키 보안이 향상되었습니다. 이 기술은 알려진 개인 키를 사용하는 이전 방법으로 다시 대체됩니다. 이 솔루션은 게시 전에 적절한 보안 조치를 취하지 않고 공개적으로 액세스 할 수있는 상자에 사용할 수 없습니다.
참고:
답변
이것은 ubuntu / trusty64 상자에있는 경우 작동합니다.
vagrant ssh
우분투 상자에 들어가면 :
sudo su
이제 루트 사용자입니다. 아래와 같이 루트 비밀번호를 업데이트 할 수 있습니다.
sudo -i
passwd
이제 파일에서 아래 줄을 편집하십시오. /etc/ssh/sshd_config
PermitRootLogin yes
또한 자신 만의 대체 사용자 이름을 만드는 것이 편리합니다.
adduser johndoe
암호를 요청할 때까지 기다리십시오.
답변
Vagrantfile
아래와 같은 경우 :
config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'
그러나 vagrant는 여전히 루트 암호를 묻습니다. 사용했던 기본 상자가 루트 로그인을 허용하도록 구성되지 않았을 가능성이 높습니다.
예를 들어, offical 한 ubuntu14.04 상자가 설정하지 마십시오 PermitRootLogin yes
에 /etc/ssh/sshd_config
.
따라서 상자가 루트 기본값으로 로그인 할 수 있도록하려면 (Vagrantfile 만, 더 이상 작업하지 않음) 다음을 수행해야합니다.
-
사용자 이름으로 VM 설정
vagrant
(루트 제외) -
sshd 구성 파일에 로그인하고 편집합니다.
우분투 : 편집
/etc/ssh/sshd_config
, 설정PermitRootLogin yes
기타 : ….
(저는 우분투 만 사용하며 다른 플랫폼의 해결 방법을 자유롭게 추가 할 수 있습니다.)
-
새 기본 상자를 만듭니다.
vagrant package --base your-vm-name
이것은 파일을 만듭니다
package.box
-
vagrant에 해당 기본 상자를 추가하십시오.
vagrant box add ubuntu-root file:///somepath/package.box
그런 다음이 기본 상자를 사용하여 루트로 자동 로그인 할 수있는 vm을 빌드해야합니다.
-
원본 VM을 다음과 같이 파괴하십시오.
vagrant destroy
-
원본을 수정 하고
Vagrantfile
상자 이름을로ubuntu-root
, 사용자 이름을로 변경root
한 다음vagrant up
새 이름을 만듭니다.
알아내는 데 시간이 좀 걸렸고 제 생각에는 너무 복잡합니다. 희망 방랑자가 이것을 개선 할 것입니다.
답변
루트는 루트가 전에 로그인 할 수 있다는 것을 잊지 마십시오 !!!
아래 구성 코드를 /etc/ssh/sshd_config
파일에 넣으십시오 .
PermitRootLogin yes
답변
이것을 Vagrantfile
나를 위해 일했습니다. 이 줄은 sudo su -
로그인 할 때마다 입력하는 것과 동일 합니다. 이를 위해서는 VM을 다시 프로비저닝해야합니다.
config.vm.provision "shell", inline: <<-SHELL
echo "sudo su -" >> .bashrc
SHELL
답변
참고 : 이 방법은 로컬 개발에만 사용하며 안전하지 않습니다 . 상자를 프로비저닝하는 동안 암호 및 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_network
IP 주소 192.168.10.37
로 say를 사용하는 경우 다음과 함께 ssh 할 수 있습니다.ssh root@192.168.10.37
기본 파일 에 따라 해당 echo
및 sed
명령 을 변경해야 할 수 있습니다 sshd_config
.
