ConoHa VPS 公開鍵認証でSSH接続


はじめに

ConoHa VPSへデプロイする際に公開鍵認証でのSSH接続手順を忘れがちなので備忘録として書きます。初学者やConoHa VPSを初めて利用する方々の役に立てればと思います。

もくじ

■環境

種別 名称 (バージョン)
ローカル環境 macOS 11.2.3
サーバー環境 ConoHa VPS CentOS 8.3

■SSH Keyを発行する

ConoHa VPSのご利用ガイドにあるとおり、SSH Keyを作成します。
SSH Keyを作成すると、秘密鍵(pemファイル)のダウンロード画面が表示されるのでダウンロードします。秘密鍵は認証時に必要となるファイルです。作成時の一度しかダウンロードできないので大切に保管しましょう。もし、ダウンロードし忘れたり削除してしまった場合はSSH Keyを再作成して下さい。

画像はご利用ガイドページより拝借

■サーバー追加時にSSH Keyを選択する

サーバー追加画面最下部の「オプションを見る」をクリックすると、オプションがいくつか表示されます。SSH Key項目の「キーを選択」をクリックすると、「パブリックキーを選択」が表示されるので、先ほど作成したSSH Keyを選択する。(ここでSSH Keyを新規作成できるようだが試したことないので割愛)

上記の手順で生成したSSH Keyを設定して追加したサーバーは自動的にパスワード認証が禁止となります。


画像はご利用ガイドページより拝借

■ファイル配置とsshコマンド簡略化

◇pemファイルの移動とconfigファイルの作成

SSH Key作成時にダウンロードしたpemファイルを.sshディレクトリ直下(~/.ssh/)に移動させます。ダウンロードしたpemファイルは数字の羅列だった気がするので、他のpemファイルと混同しないようにこのタイミングで名前を変更しておくといいです。(.sshディレクトリがない場合は作成してください。)

mkdir ~/.ssh

次にsshコマンドを簡略化するためにconfigファイルを.sshディレクトリ直下に作成します。
現時点で.sshディレクトリ内は下記のようになっていると思います。(既にssh接続を行ったことがある方は他のpemファイルやknown_hostsファイルがあるかもしれませんが問題ありません。)

.ssh
 ├── config (新規作成)
 ├── hogehoge.pem (移動させたpemファイル)

◇configファイルの記述

configファイルにviコマンドなどで下記を記述します。

~/.ssh/config
Host conoha_hoge(任意のエイリアス)
  HostName リモートのホスト名(契約したサーバーのIPアドレス)
  port 22
  User root
  IdentityFile ~/.ssh/hogehoge.pem
  • Host:エイリアスはsshコマンドを実行する時に使用する名前です。名前は任意ですが、ここでは例として「conoha_hoge」として説明します。
  • HostName:サーバーのIPアドレスはConoHaのサーバ情報から確認できます。
  • port:セキュリティなどの理由からSSHのポートを変更する場合は編集してください。
  • user:初期の接続と仮定してConoHaの登録済みユーザーである「root」を例として設定してます。
  • IdentityFile:pemファイルのパス。

■ディレクトリとファイルの権限を設定する

ここまできたらあともう一息です。「.sshディレクトリ」、「configファイル」、「pemファイル」の権限を設定します。
設定の詳細について調べたい方はこちらの記事が分かりやすいと思います。

chmod 700 ~/.ssh
chmod 600 ~/.ssh/config

pemファイルの名前は各自異なると思うので変更してください。

chmod 400 ~/.ssh/hogehoge.pem

■SSH接続する

下記コマンドでSSH接続してください。

ssh conoha_hoge

おわりに

自分でVPSを動かしながら本記事を書きましたが、何か間違いや不具合などあればお手柔らかにご指摘いただければ幸いです。この後、セキュリティを高めるために「ルートユーザーでのSSH接続を無効化」などが必要な場合がありますが、本題の主旨とは異なる内容ですので他の方の記事を参照してください。

参考文献

発展

ConoHaに限らず公開鍵認証でリモートにSSH接続する方法についての記事があったので、機会があればこちらの記事を参照する。