
VPSサーバー構築の関連記事:
サーバー構築: Kanakofolio (①概要・ドメイン移行)
サーバー構築: kanakofolio(②ユーザー登録・SSH設定)
サーバー構築: kanakofolio(③SSL化・ファイアウォール)
サーバー構築: kanakofolio(④WordPress・データベース設定)
概要
導入理由
ConoHa VPSの管理画面にあるブラウザ上のターミナルは動作が重く、操作性も限られる。
サーバー構築及び運用・開発の効率を向上させるために、SSHキーを管理画面からダウンロードし、それを用いてローカルPCのターミナルからサーバーに直接ログイン出来るよう設定。
加えて、普段使用するエディタのVS Codeからサーバー上のファイルをシームレスに編集出来るように、拡張機能のRemote-SSHも導入。
実装手順(概要)
- SSHキーの発行: ConoHa VPS管理画面(セキュリティ→SSH Key)から、接続用の.pemキーを発行し、ローカルPC内にダウンロード・保存。
- ローカルPC設定: Windows環境では/c/Users/ユーザー名/.sshディレクトリを利用。
- VS Code Remote-SSH: Remote-SSHプラグインを用いて、ダウンロードした公開鍵を設定しログイン。エディタ上で直接サーバーのファイルの編集・保存が可能に。
技術的試行錯誤
ローカルPC内の.sshディレクトリ確認
初めは「.ssh」をファイルとして認識していたが、ディレクトリであると分かり作成し直した。
ローカルPC内に、/c/Users/ユーザー名ディレクトリに.sshのフォルダを作成し、その中にコノハ管理画面でダウンロードした.pemキーを/c/Downloadsディレクトリから移動。
mkdir /c/Users/ユーザー名/.ssh //.sshディレクトリ作成
mv /c/Downloads/mysshkey.pem /c/Users/ユーザー名/.ssh //.pemキーを.sshディレクトリに移動公開鍵とユーザーの紐づけ
ConoHaでpemキーを発行する際は、デフォルトではrootユーザーに紐づけされるものの、普段利用するために追加したubuntuユーザーに適用するには手動で公開鍵を登録する必要があると判明。
そこで、以下のようにubuntuユーザーにも公開鍵を登録。
ログイン: pemキーを使い、ローカルPCからrootユーザーでログイン。
ssh -i /c/Users/ユーザー名/.ssh/mysshkey.pem root@myip //初めの状態ではこれのみが通る.sshディレクトリの作成: ubuntuユーザーのホームディレクトリに公開鍵用のディレクトリを追加し、権限を設定
mkdir -p /home/ubuntu/.ssh
chmod 700 /home/ubuntu/.ssh //自分以外閲覧・実行・編集不可公開鍵登録: authorized_keysファイルを作成したディレクトリ内に追加し、公開鍵の内容(ConoHa管理画面からも閲覧可)を追記し、権限を設定
nano /home/ubuntu/.ssh/authorized_keys //ターミナル内のファイル編集エディタ開く
chmod 600 /home/ubuntu/.ssh/authorized_keys
chown -R ubuntu:ubuntu /home/ubuntu/.ssh/authorized_keys //ubuntuユーザーに権限を付与※当方はローカルのターミナルとして用いたGit Bashではコピー・ペーストは普段のCtrl S・Vでは行えず、選択範囲を囲ったうえで右クリックでCopyやPasteを選択することで可能。
ログイン方法: 以降は以下のコマンドでローカルPCからubuntuユーザーとしてログイン可能に。
ssh -i /c/Users/ユーザー名/.ssh/mysshkey.pem ubuntu@myip //ログイン後はubuntuユーザー登録の際に設定したパスワードを入力Remote-SSHの設定
VS Codeの左端のアイコン縦並びメニューの最下部「Extensions(四角いブロックが積まれたアイコン)」から、「Remote-SSH」を検索し、インストール。
初期設定として、/c/Users/ユーザー名/.sshディレクトリにconfigファイルを作成。
Host conoha-vps //自分が分かりやすい名前でOK
HostName xxx.xxx.xxx.xx //サーバーのIPアドレスを登録
User ubuntu //ログインしたいユーザー名で(この場合ubuntu)
Port 22 //ssh接続の際のポート番号
IdentityFile ~/.ssh/mysshkey.pem //WindowsのローカルPCとは表記が異なる点は注意※rootユーザー以外での登録の場合、Remote-SSHの設定を行う前に公開鍵とユーザーの紐づけ・権限の設定を終えておく必要がある。このプラグインの仕様上、configファイルでの設定でしか接続できないためこれらを行わないで接続を試みても繋がらないからだ。
設定以降は、エディタの左下の青色で囲われているアイコン(>と<を上下につなげたような記号)をクリックし、上部中央のスペースの下に出現するメニュー内の「Connect to Host…」からconfigファイルで設定したサーバーに接続可能。

