Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

ローカルマシンから仮想マシンに 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 クライアントだとウィンドウのサイズは適宜変更できますし、コピペもできるので便利です。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした