web-dev-qa-db-ja.com

Vagrant VMのパスワードssh認証を有効にする方法

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。そのオプションをオンにするにはどうすればよいですか?

11
czerny

私にとっては、次の作品。通常どおりvmにsshしてから/etc/ssh/sshd_configを編集する必要があります。そこで、PasswordAuthenticationyesではなくnoに設定する必要があります。これにより、パスワード認証が許可されます。

8
FreeLightman

VMのパスワード認証を強制する場合は、Vagrantfileから以下を設定する必要があります。

  config.ssh.username = 'vagrant'
  config.ssh.password = 'vagrant'
  config.ssh.insert_key = false

VMのvagrantユーザーが対応するパスワードを持っていることを確認する必要があります。使用するボックスがわからないため、自分で確認する必要があります。次のボックスの場合:ubuntu/trusty64

3

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>
3
czerny

パスワードで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
2
Syam