Vagrant★WinSCPでつないでルート権限(sudo)を与える

2020年12月15日

Vagrantの仮想マシンでubuntuを設定する際に、コマンド叩いてviで編集して・・・という作業が面倒に感じてきたので、WinSCPをつないで作業効率の向上を図ります。

前提条件

ここでは、Vagrant BoxesからダウンロードしたUbuntuを使うことを前提で話を進めます。Vagrant BoxesからUbuntuをダウンロードする方法はここを参照。

VagrantのUbuntuにWinSCPで接続

今回はWinSCPからUbuntuへ接続を行い、ルート権限を与えて設定ファイル等を編集できるようにします。

(1)private_keyの確認

安全に接続するためにはprivate_keyが必要です。次のフォルダにprivate_keyがあります。確認してみましょう。

C:\任意の場所\vagrant_ubuntu(作成したubuntu用のフォルダ)\.vagrant\machines\default\virtualbox

因みに設定ファイルVagrantfileは.vagrantと同じフォルダに存在しています。

(2)WinSCPの起動と初期設定

WinSCPを起動するとログイン画面が開きます。そこで「新しいサイト」を選択すると次のような画面になります。

順番に内容を入力していきましょう。

①ホスト名

今回の場合、①にはIPアドレスを入力します。Vagrantfileで設定した項目に次のような内容があります。

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

ここで設定したIPアドレスを入力します。上記の場合は192.168.33.10になります。

②ユーザ名

②にはユーザ名を入力します。Vagrant BoxesからダウンロードしたOSはだいたいユーザ名がvagrantになってると思うので(たぶん)、vagrantを入力します。

③パスワード

③にはパスワードを入力します。②と同様だいたいのOSはパスワードがvagrantになっているはずなので、vagrantを入力します。

(3)private_keyの設定

private keyの設定にはprivate_keyを.ppk形式に変換する必要があります。

private_keyの.ppk形式への変換

次の画面の通り設定ボタンをクリックして下さい。

すると画面が開くので「認証」をクリックして画面を切り替えます。

次にprivate keyの選択を行います。下の画面の赤枠をクリックして下さい。

秘密鍵(private_key)の場所は(1)で確認した通り、次のようになります。

C:\任意の場所\vagrant_ubuntu(作成したubuntu用のフォルダ)\.vagrant\machines\default\virtualbox

画面を開いて該当フォルダに移動してください。すると次のような画面になります。

何も表示されません。private_keyを表示させる為に赤枠の「PuTTY 秘密鍵ファイル(*.ppk)」を「すべてのファイル(*.*)」に変更します。

すると次のようにprivate_keyが表示されました。選択して「開く」をクリックして下さい。

上記の手順でprivate_keyが見つからない場合は、コマンドプロンプトでprivate_keyの場所を確認しましょう。

まずはコマンドプロンプトを開いてVagrantfileのある場所まで移動してください。そこで次のコマンドを入力してください。

vagrant ssh-config

すると次のように表示されます。

Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile "C:/Users/・・・/0/virtualbox/vagrant_private_key"
  IdentitiesOnly yes
  LogLevel FATAL

この中で表示されている、IdentityFile “C:/Users/・・・/0/virtualbox/vagrant_private_key" がprivate_keyのある場所です。

「秘密鍵 OpenSSH を PuTTY 形式に変換しますか?」と表示されるので「OK」をクリック。

「変換された秘密鍵を保存」の画面が開くので「保存」をクリック。保存する場所はどこでも構いませんが、ここでは先ほどのprivate_keyと同じフォルダに保存します。

「秘密鍵が変換され~に保存されました。」と表示されるので「OK」クリック。

これでprivate_keyの変換・設定は完了しました。

(4)sudo ルート権限を与える

※基本的な接続設定は既に完了しているのでここ(4)の作業はルート権限が不要な方はやらなくても問題ありません。

それでは(3)でやった作業と同じように、「設定」をクリックして画面を開きます。

画面が開いたら「SFTP」をクリックして、「SFTPサーバ」の欄へ次のように入力します。
(これはOSがUbuntuの場合です。)

sudo /usr/lib/openssh/sftp-server

OSがCentOSの場合は次のように入力します。

sudo /usr/libexec/openssh/sftp-server

これでルート権限が与えられました。

(5)保存してUbuntuに接続

それでは設定を保存します。

保存したらログインします。

「警告 – 潜在的なセキュリティ違反」と表示されますが気にせず「更新」をクリック。

これで全ての作業は完了です。ちゃんと設定ファイルが編集できるようになりました。

Vagrant

Posted by Bright_Noah