【Vagrant】SSHの認証方式をパスワード認証に変更する方法


この記事はプロモーションを含みます。

Vagrant環境にて、vagrant up時にSSH接続する際の認証方式をパスワード認証に設定する方法を解説します。

はじめに

以前、Linux環境に接続する際の認証方式をパスワード認証に変更する方法を解説しました。
(以下の記事になります。また、パスワード認証についても簡単に説明しています)

しかし、Vagrantで作成した仮想マシン上で、毎回この作業を実施するのが面倒でした。
vagrant upコマンドの実行時にパスワード認証に変更する方法が分りましたので、
今回はそれをご紹介したいと思います。

設定方法

設定方法は簡単で、Vagrantにおける仮想マシンの設定ファイルである「vagrantfile」に以下を追記するだけです。

config.vm.provision "shell", inline: <<-SHELL
  sudo sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config;
  sudo systemctl restart sshd;
SHELL

以下のように記述することも出来ます。

config.vm.provision :shell, :inline => "sudo sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config; sudo systemctl restart sshd;", run: "always"

これで、vagrant upコマンドの実行時にパスワード認証になっています。

以下は、参考ですが、VMware用のvagrantfileの記述例です。

Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  config.vm.network "public_network", ip: "192.168.254.200"
  config.vm.provider "vmware_desktop" do |v|
    v.vmx["displayname"] = "VMwareTest"
    v.vmx["ethernet0.pcislotnumber"] = "36"
    v.vmx["ethernet1.pcislotnumber"] = "37"
    v.gui = false
    v.memory = 2048
    v.cpus = 2
  end
  config.vm.box_check_update = false
  config.ssh.private_key_path = "C:\\Users\\user\\Documents\\insecure_private_key"
  config.ssh.insert_key = false
  config.vm.provision "shell", inline: <<-SHELL
    sudo sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config;
    sudo systemctl restart sshd;
  SHELL
end

一応、パスワード認証で接続出来るか確認してみます。
TeraTermを起動し、ユーザー・パスワードを入力します。

以下のように、接続出来れば、パスワード認証の設定が完了となります。

記事は以上です。

コメント

タイトルとURLをコピーしました