VPSサーバにSSH接続する方法 (Mac, Windows対応)

この記事は、シリーズ「VPSでdiscord.py Bot開発&運営」の一部です。( 3 / 5 )

今回の記事の内容

今回は、作成したVPSサーバにSSH接続し、簡単なコマンドを動かしてみるところまでやってみたいと思います。
SSH公開鍵はサーバ作成時にOSに追加済、SSH秘密鍵は手元にあるものとして説明します。
これらがない場合、前回の記事をご確認ください。

SSH

SSHってそもそも何?

インターネットの向こうのコンピュータとの通信をする際に使うプロトコル(=約束事、きまり)です。このプロトコルを使用すると、通信の内容が暗号化され、盗聴等の攻撃に対して強くなります。
暗号の強度は、使う暗号化方式に依存します。

VPSサーバに接続していろいろな作業をする際に、打ち込んだコマンドやパスワードを第三者に盗み取られては困ります。なので、SSHを使います。

SSH通信をするには何が必要?

SSH通信をはじめるには、以下の4つの情報が必要です。

  • IPアドレス
  • SSHのポート番号
  • SSHユーザ名
  • いずれかの認証情報
    • パスワード
    • 鍵ファイル ★今回はこっちを使います

IPアドレス

「どこにつなげばいいのか」を示す情報です。
VPSのIPアドレスの確認方法は、前回の記事を参照してください。

SSHのポート番号

大抵の場合初期設定は22ですが、サービスによっては独自のポート番号となっていることがあります。
カゴヤ・ジャパンConoHaも、基本的にポートは22です。

SSHユーザ名

SSHでは、どのユーザでSSHログインするかを指定できます。
作りたてのVPSサーバの場合、大抵はrootユーザしかいないため、必然的にrootになります。

認証情報

ユーザに対するパスワード、または秘密鍵ファイルのいずれかでログインできます。
今回は、前回の記事で入手した秘密鍵ファイルがありますので、それを使ってログインします。

また、パスワードでのSSHログインは、一般的に推奨されていません。鍵ファイルによる方法と比較して、総当たり攻撃や辞書攻撃への耐性が低く、クラックされる危険が大きいためです。
SSHのパスワードログインは無効にし、鍵ファイルで認証を行う習慣を付けましょう。

鍵ファイルの名称

名称を変更しておこう

扱いやすいよう、認証キーのファイル名をvps_authorized_keyに変更します。
下記にターミナルでの操作例を示しますが、Windowsの方はファイルを右クリック→「名前の変更」で変更してください。

# ConoHaの場合
$ mv 20190227000000.pem vps_authorized_key
# KAGOYAの場合
$ mv ログイン用認証キー_20190227000000.key vps_authorized_key

鍵ファイルの拡張子について

ConoHaでは.pem、KAGOYAでは.keyとなっていますが、気にしなくて大丈夫です。
秘密鍵のフォーマット規定に拡張子が何であるかは含まれないため、統一されていません。
一般的には、今回出てきた.pem.keyに加え、「拡張子なし」である場合も多いです。

SSHでログインしてみよう

Mac OS含むLinuxでは、標準でインストールされているSSH接続するためのコマンドを使うことができます。
Windowsの場合、SSHクライアントアプリケーションを利用する必要があります。

Windows

Windowsで使えるSSHクライアントアプリケーションには色々な選択肢があります。代表的なものを以下に挙げます。

  • TeraTerm
  • Putty
  • Rlogin
  • ssh client ※Windows10のみ

今回は、過去記事を引用し、Puttyを使った手順を紹介します。
もちろん、お気に入りのSSHクライアントを使っていただいても構いません。

秘密鍵の変換

まずはこちらの記事の手順通りに、SSH秘密鍵からppkファイルを生成します。

接続

こちらの記事の手順どおりに、SSH接続を行います。

Linux OS (Mac含む)

以下のコマンドを実行することでSSH接続できます。

$ ssh -i <認証ファイルのパス> <ユーザ名>@<IPアドレス>:<ポート番号>

たとえば、以下のような条件であれば、

項目 内容
認証ファイル 同じフォルダ内に秘密鍵vps_authorize_keyがある
ユーザ名 root
IPアドレス 192.168.0.1
ポート 22

以下のコマンドを実行すれば、SSH接続が行えます。

$ ssh -i vps_authorize_key root@192.168.0.1:22

ポート番号が標準(=22)の場合、省略可能です。

# これでもOK
$ ssh -i vps_authorize_key root@192.168.0.1

動かしてみよう

SSHログインはうまくいったでしょうか?
少しコマンドを打ち込んでみましょう。

# ls
# pwd
# df

満足したら、exitで接続を終了します。

# exit

まとめ

SSH接続の概要と、接続を行う手順を紹介しました。
次回は、今回できるようになったSSH接続を使って、サーバを侵入者から守るセキュリティ設定を固めて行きたいと思います。
ここで作業を中断する場合、作ったサーバの電源はオフにしておくと安心です。

この記事は、シリーズ「VPSでdiscord.py Bot開発&運営」の一部です。( 3 / 5 )