SSH
vagrant
VirtualBox
認証

Vagrantの公開鍵、秘密鍵を用いたssh接続の設定

More than 3 years have passed since last update.


環境


  • ホストPC: Mac

  • CentOS ver : 6.5

  • 仮想環境: VirtualBox


仮想環境設定


CentOS 仮想マシンを構築する


作業ディレクトリを作成する

cd

mkdir
Workspace
cd Workspace



  • boxファイルのURLを入手する



    • http://www.vagrantbox.es/ へアクセスする – search: centos 6.5で検索

    • CentOS 6.5 x86_64のURLをコピーする



  • vagrantコマンドでboxを追加する


vagrant box add centos65 "コピーしたURL" (ダウンロードが始まるので時間かかります)


  • Vagrantfileを生成する

vagrant init centos65


CentOS 仮想マシンを構築する


  • Vagrantfileをカスタマイズする

sudo vi Vagrantfile

お好みで


  • CentO仮想マシンを作成する

vagrant up


  • CentOS仮想マシンに接続する

vagrant ssh


秘密鍵、公開鍵設定


公開鍵の転送

vagrant ssh-config    # port番号を確認(Mac環境で行う)

scp -P port番号 -i ~/.ssh/秘密鍵ファイル ~/.ssh/公開鍵ファイル 仮想マシン:仮想マシンのディレクトリ/転送先でのファイル名


転送した鍵とMac環境が同じか確認


  • Mac環境

ssh-keygen -vlf ~/.ssh/公開鍵ファイル 


  • 仮想環境

vagrant ssh 

ssh-keygen -vlf ~/.ssh/公開鍵ファイル

上記を比較して確認する


Vagrantfileに秘密鍵のパスを設定する

config.ssh.private_key_path = "~/.ssh/秘密鍵ファイル"

vagrant reload


公開鍵と秘密鍵でssh接続できる事を確認

Macから仮想環境にアクセスをできるか確認をする

vagrant ssh


password認証をできなくしたい場合


  • パスワードが設定されていないアカウントを拒否する

/etc/ssh/sshd_configを指定

PermitEmptyPasswords no


パスワード認証方式を無効にする

/etc/ssh/sshd_configを指定

PasswordAuthentication no


sshの再起動

sudo /etc/rc.d/init.d/sshd restart

これでパスワード認証ができなくなり、秘密鍵、公開鍵によるログインしかできなくなります


補足


portがほかのアプリで使われているため利用できない場合

The forwarded port to 8080 is already in use

Vagrantfileにてポート番号の変更を行う

config.vm.network "forwarded_port", guest: 80, host: 8080 #<-ここを変更


sshログインするときに、localeで警告がでる場合

warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory

Macにて

# SendEnv LANG LC_*

一旦ssh接続する際に設定をおくっているところをコメントアウトすることで対処。

CentOSに日本語パッケージをインストールすることでも対処できるので、

時間がある際にパッケージのインストールをする。