Vagrant VMのパスワードssh認証を有効にします(そしてキーベースの認証を有効にします)。それを設定するには?
Vagrantfile
:
Vagrant.configure("2") do |config|
config.vm.box = "Fedora/26-cloud-base"
config.vm.box_version = "20170705"
config.ssh.username = 'vagrant'
config.ssh.password = 'a'
config.ssh.keys_only = false
end
$ Sudo vagrant ssh-config
Host default
HostName 192.168.121.166
User vagrant
Port 22
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /home/jakub/src/kubernetes-vms/kubernetes/.vagrant/machines/default/libvirt/private_key
LogLevel FATAL
この設定では、パスワードa
は受け入れられません。
PasswordAuthentication no
の出力でvagrant ssh-config
。そのオプションをオンにするにはどうすればよいですか?
私にとっては、次の作品。通常どおりvmにsshしてから/etc/ssh/sshd_config
を編集する必要があります。そこで、PasswordAuthentication
をyes
ではなくno
に設定する必要があります。これにより、パスワード認証が許可されます。
VMのパスワード認証を強制する場合は、Vagrantfileから以下を設定する必要があります。
config.ssh.username = 'vagrant'
config.ssh.password = 'vagrant'
config.ssh.insert_key = false
VMのvagrant
ユーザーが対応するパスワードを持っていることを確認する必要があります。使用するボックスがわからないため、自分で確認する必要があります。次のボックスの場合:ubuntu/trusty64
Vagrantfile
:
Vagrant.configure("2") do |config|
config.vm.box = "Fedora/26-cloud-base"
config.vm.box_version = "20170705"
config.vm.provision 'Shell', inline: 'echo "vagrant:a" | chpasswd'
end
行config.vm.provision 'Shell', inline: 'echo "vagrant:a" | chpasswd'
は、vagrant
ユーザーのパスワードを変更するシェルプロビジョニングを呼び出します(ボックスにvagrant
という名前の定義済みユーザーが付属している場合)。
そうすれば、vagrant ssh
だけでなく
ssh vagrant@<vm-ip>
パスワードでsshするために、これはdebian/stretch64のsshd設定を自動的に更新します:
config.vm.provision "Shell", inline: <<-Shell
sed -i 's/ChallengeResponseAuthentication no/ChallengeResponseAuthentication yes/g' /etc/ssh/sshd_config
service ssh restart
Shell