問題:私がボックスに最初に入力するコマンドは頻繁にですsu -
。
質問:vagrant ssh
デフォルトでrootユーザーを使用するにはどうすればよいですか?
バージョン:vagrant 1.6.5
問題:私がボックスに最初に入力するコマンドは頻繁にですsu -
。
質問:vagrant ssh
デフォルトでrootユーザーを使用するにはどうすればよいですか?
バージョン:vagrant 1.6.5
回答:
これは便利です:
sudo passwd root
最初にvagrantにrootパスワードを設定する必要があることに夢中になっている人のために
解決策:
次のものをに追加します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以降改善されています。この手法は、既知の秘密鍵を使用する以前のメソッドにオーバーライドします。このソリューションは、公開前に適切なセキュリティ対策を講じなくても一般にアクセスできるボックスに使用することを意図したものではありません。
参照:
vagrant ssh
か?(上記の変更を行った後)Vagrantバージョン1.7.2
config.ssh.password
値にあるものと一致するようにルートパスワードを設定する必要があります。新しく追加されたconfig.ssh.*
行をコメント化してボックスにアクセスし、を介してrootパスワードを変更できますsudo passwd root
。
mkdir -m 700 /root/.ssh && cp ~vagrant/.ssh/authorized_keys /root/.ssh
centos/7
:このボックスはランダムなrootパスワードを設定します。1缶vagrant ssh
、その後、sudo su
根に、しかし、コンフィグ設定は新鮮では動作しません(私が言うことができるものから)vagrant up
このVMを使用しました。
Vagrantfile
以下の場合:
config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'
しかし、vagrantは依然としてrootパスワードを要求します。おそらく、使用したベースボックスはrootログインを許可するように設定されていません。
たとえば、公式のubuntu14.04ボックスはで設定さPermitRootLogin yes
れません /etc/ssh/sshd_config
。
したがって、ボックスをrootのデフォルトとしてログインできるようにする場合(Vagrantfileのみ、これ以上の作業は不要)、次のようにする必要があります。
ユーザー名でVMをセットアップしますvagrant
(root以外の名前)
ログインしてsshd設定ファイルを編集します。
ubuntu:編集/etc/ssh/sshd_config
、設定 PermitRootLogin yes
その他:....
(私はubuntuのみを使用しています。他のプラットフォームの回避策を自由に追加してください)
新しいベースボックスを作成します。
vagrant package --base your-vm-name
これはファイルを作成します package.box
そのベースボックスをvagrantに追加します。
vagrant box add ubuntu-root file:///somepath/package.box
次に、このベースボックスを使用して、rootとして自動ログインできるvmをビルドする必要があります。
元のVMを破壊する vagrant destroy
編集元Vagrantfile
、変更ボックス名にubuntu-root
すると、ユーザー名root
、そしてvagrant up
新しいものを作成します。
理解するのに少し時間がかかりましたが、私の意見では複雑すぎます。浮浪者がこれを改善することを望みます。
注:この方法はローカル開発にのみ使用してください。安全ではありません。ボックスのプロビジョニング中に、パスワードと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
これにより、rootパスワードがに設定されvagrant
、パスワードでのrootログインが許可されます。private_network
say with ip address を使用している場合は192.168.10.37
、次のコマンドでsshできます。ssh root@192.168.10.37
あなたはそれを変更する必要があるかもしれませんecho
し、sed
コマンドがデフォルトに応じてsshd_config
ファイル。
これは古い質問であることはわかっていますが、元の質問を見ると、ユーザーがrootとしてコマンドを実行したいと思っているようです。これは、回答を探していて質問を見つけたときに行う必要があることです。
だからこれは私の意見で知る価値があります:
vagrant ssh servername -c "echo vagrant | sudo -S shutdown 0"
vagrant
sudoコマンドにエコーされるパスワードです。ご存じのとおり、vagrantアカウントにはsudo権限があり、sudoを実行するときは、rootではなくユーザーアカウントのパスワードを指定する必要があります。もちろん、デフォルトでは、迷惑なユーザーのパスワードはvagrant
!
デフォルトではシャットダウンするにはroot権限が必要なので、シャットダウンを行うのは良いテストだと思います。
明らかに、その迷惑な環境に1つしかない場合は、サーバー名を指定する必要はありません。また、ここではホストに対するローカルの仮想マシンについて話しているので、実際に目に見えるセキュリティ上の問題はありません。
お役に立てれば。