11
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Vagrant 事始め 03 - 仮想マシンにログインする

Last updated at Posted at 2018-04-11

ローカルマシンから仮想マシンに SSH 接続できるようにする

前回からの続きです。

Vagrantfile に設定を追加する

Vagrantfile
Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  # 仮想マシンに IP 192.168.33.10 を割り当てて、ローカルマシンからのみ接続できるようにする
  config.vm.network "private_network", ip: "192.168.33.10"
end

仮想マシンを起動する

> vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'centos/7' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
==> default: Machine booted and ready!
[default] GuestAdditions 5.2.6 running --- OK.
==> default: Checking for guest additions in VM...
==> default: Configuring and enabling network interfaces...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
==> default: Rsyncing folder: /cygdrive/c/Vagrant/centos8/ => /vagrant
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.

仮想マシンに SSH 接続に必要な情報を設定する

仮想マシンが起動したら、vagrant ssh-config を実行して、SSH 接続に必要な情報を取得します。

> vagrant ssh-config
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile C:/Vagrant/centos7/.vagrant/machines/default/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL

上記の IdentityFile C:/Vagrant/centos7/.vagrant/machines/default/virtualbox/private_key にある C:/Vagrant/centos7/.vagrant/machines/default/virtualbox/private_key が仮想マシンのログインに必要な秘密鍵になります。

putty などのターミナルでログインする場合は、上記の秘密鍵を指定してください。ログインユーザー名は vagrant です。ssh コマンドを利用する場合は、

$ ssh -l vagrant -i .vagrant/machines/default/virtualbox/private_key 192.168.33.10
The authenticity of host '192.168.33.10 (192.168.33.10)' can't be established.
ECDSA key fingerprint is SHA256:
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.33.10' (ECDSA) to the list of known hosts.
[vagrant@localhost ~]$ uname -a
Linux localhost.localdomain 3.10.0-693.17.1.el7.x86_64 #1 SMP Thu Jan 25 20:13:58 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

となります。

SSH を使わずに仮想マシンにログインをする

Vagrantfile に Virtualbox のターミナルに関する設定を使用すると、SSH を使わずに仮想マシンにログインができます。

Vagrantfile に Virtualbox の設定を記述する

Vagrantfile
Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  # 仮想マシンに IP 192.168.33.10 を割り当てて、ローカルマシンからのみ接続できるようにする
  config.vm.network "private_network", ip: "192.168.33.10"

  # Vagrantfile 生成時の設定からコメントアウトをしただけ
  config.vm.provider "virtualbox" do |vb|
    vb.gui = true
    vb.memory = "1024"
  end
end

無事に起動すると、下図のようなターミナルウィンドウが自動的に起動します。

ログインできるアカウントは、USER: vagrant PASS: vagrant になります。

2018-04-10_15h54_17.png

最初の仮想マシンを起動するときにインストールされた Virtualbox Guest Additions が、このターミナルを表示するときに必要になります。

SSH クライアントと Virtualbox のターミナルについて

個人的には Virtualbox のターミナルより、SSH クライアントの方が便利だと思います。

このターミナルは縦横のサイズが固定されていますし、コピペができません。逆に SSH クライアントだとウィンドウのサイズは適宜変更できますし、コピペもできるので便利です。

11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?