Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
54
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

Vagrantで立ち上げた仮想環境にIPアドレスを振ってsshでログインする

この記事はMac向けです。他のOSの場合は、sshコマンド等別途準備してください。

事前準備

VirtualBoxのインストール

インストール後、起動してください。

Vagrantのインストール

インストール後、vagrantコマンドが使えるようになります。

$ vagrant --version
Vagrant 1.9.4

Vagrantプロジェクトの初期化からVM起動まで

適当な場所に作業ディレクトリを作成。場所と名前はどこでも可です。以下の説明は適当に読み替えてください。
今回の説明では、VMのOSにCentOS7を使います。他のOSを使う場合はここで探して下さい。

$ mkdir -p /your/directory/vm1
$ cd /your/directory/vm1

initコマンドで初期化します。Vagrantfileが作成されます。

$ vagrant init centos/7

VirtualBoxにVMを起動

$ vagrant up

スクリーンショット 2017-05-17 14.50.20.png

無事立ち上がったら、VMにvagrant sshでログインできます。ログアウトはexitです。

$ vagrant ssh

destroyコマンドで、VirtualBoxのVMを停止・削除できます。vm内での変更は破棄されます。

$ vagrant destroy

Vagrantで立ち上げたVMにディフォルト設定でsshでログイン

vagrant sshではなく、通常のsshコマンドでログインしてみます。

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 /your/directory/vm1/.vagrant/machines/default/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL

ディフォルトでは、ホストOSのport 2222に、VMのport 22がフォワードされています。このため、localhostのport 2222に対してsshでログインできます。選んだOSによってはUserがvagrant以外になっているかもしれません。

$ ssh -i /your/directory/vm1/.vagrant/machines/default/virtualbox/private_key -p 2222 vagrant@127.0.0.1
とか
$ ssh -i /your/directory/vm1/.vagrant/machines/default/virtualbox/private_key -p 2222 vagrant@localhost

[vagrant@localhost ~]$ 

su -でrootになる場合、パスワードはvagrantです。

VMに接続するポートを変えてsshログイン

ディフォルトの設定のままで2台目のVMを起動させると、port 2222にフォワードしようとして失敗するため、2223を割り振ってみます。
新しい作業ディレクトリを作って、vagrant initコマンドを実行し、作成されたVagrantfileをテキストエディタで開きます。

$ mkdir -p /your/directory/vm2
$ cd /your/directory/vm2
$ vagrant init centos/7
$ vi Vagrantfile

Vagrantfileに1行追加

config.vm.network "forwarded_port", guest: 22, host: 2223, id: "ssh"

vagrant upでVMを起動して、vagrant ssh-configで接続情報を確認すると、ポートが2223に変わっています。

$ vagrant up
$ vagrant ssh-config
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2223
以下略

port 2223でsshログインできます。

$ ssh -i /your/directory/vm2/.vagrant/machines/default/virtualbox/private_key -p 2223 vagrant@localhost
[vagrant@xxx ~]$ 

VMにIPアドレスを振ってsshログイン

今度はVMにホストOSとは別の、IPアドレス割り振って、ホストOSからssh接続してみます。
また新しい作業ディレクトリを作成して、init後、Vagrantfileに1行追加します。

$ mkdir -p /your/directory/vm3
& cd /your/directory/vm3
$ vagrant init centos/7
$ vi Vagrantfile

Vagrantfileに1行追加します。192.168.10.2の所は環境に応じてかえてください。

config.vm.network "private_network", ip: "192.168.10.2"

VMに対してホストOSとは別のIPで、sshでログインできるようになりました。

$ vagrant up
$ ssh -i /your/directory/vm3/.vagrant/machines/default/virtualbox/private_key vagrant@192.168.10.2
[vagrant@xxx ~]$ 
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
54
Help us understand the problem. What are the problem?