ホストOSからゲストOSのvagrant以外のユーザへ、公開鍵認証でSSH接続する手順を残します。
注意点
- 今回はホストOSからパスワード認証をせず公開鍵認証をすることが目的のため、ゲストOS側でsshd設定は変更していません。
- ユーザは既に作成された前提です。
- 手順内で、[]で囲われた箇所は適宜読み替えて設定してください。
- ホスト名
- 通常は
127.0.0.1
です。
- 通常は
- ポート番号
- デフォルトで
2222
に設定されています。
- デフォルトで
- 公開鍵・秘密鍵ファイル名
-
~/.ssh/
下に配置されている対になったファイルの名前です。末尾.pub
のファイルが公開鍵です。
-
公開鍵・秘密鍵の配置
ホストOS側作業
-
SSHの公開鍵と秘密鍵を作成する。
- 鍵の作成方法はこの記事では取り扱いません。以下の記事などを参考に作成してください。
-
公開鍵をゲストOSへ転送する。
scp -P [ポート番号] ~/.ssh/[公開鍵ファイル名] [ユーザ名]@[ホスト名]:/home/[ユーザ名]/.ssh/authorized_keys
ゲストOS側作業
-
公開鍵のアクセス権限を変更する。
chmod 600 ~/.ssh/authorized_keys
SSH接続設定
ホストOS側作業
-
Vagrantfileを編集。
Vagrantfileconfig.ssh.username = "[ユーザ名]"
-
一旦ゲストOSを落とし、再度立ち上げる。
vagrant up
-
mkdir -p /vagrant
ができず、エラーが表示されるが問題ない(ユーザ権限がなく、共有フォルダの生成に失敗している)。
-
-
ゲストOS用のSSH設定を、ホストOSのSSH設定に追加する。
vagrant ssh-config >> ~/.ssh/config
-
SSH設定をエディタでさらに編集。
-
host default
のdefault
を適当な分かりやすいホスト名に変更。 -
末尾に以下の設定を追加。
~/.ssh/configIdentityFile ~/.ssh/[秘密鍵ファイル名]
- Vagrantfileから、1で編集した行を削除もしくはコメントアウトし、ゲストOSを再起動する。
参考URL
SSH into Vagrant box as another user using key? - Stack Overflow