SSHとは、Secure Shellの略称です。SSH接続は、VPSだけに限らずリモートコンピューターと接続・通信するためのプロトコル(通信手順)の一つで、認証部分を含めたネットワーク上の通信が全て暗号化されるため、安全に通信することができるそうです。
様々な認証方法があるようですが、有名なのは、SSH鍵という、まさに文字通り鍵のようなものを割符的な符号に使い、ターミナル、Terminus(これらはWindowsにもMacにもあります)やTeraTerm、Putty(これらはWindowsにあります)といったSSH接続に対応したアプリでVPSサーバーに接続する方法です。
適切なアプリ(Terminusなど)が見つかりさえすれば、iPhoneやAndroidなどのスマートフォンからでも、SSH接続することができます。(実際、筆者はTerminusでiPhoneから自鯖の管理を行なっていることも多いです。)
公開鍵を持っているコンピューター(サーバー)に秘密鍵を使って接続します。
SSH鍵の作り方
VPSでサーバーを借りる際のオプションとして作ってもらう
少なくともKAGOYA、ConoHa、シンVPSでは、サーバー作成時にオプションとしてSSH鍵を一緒に作成することができます。作成された秘密鍵をダウンロードすることを忘れずに!
また、後述のコマンドで作成した「自作の公開鍵」を登録することも可能です。
さくらのVPSでも、「自分で作成した公開鍵」をサーバー作成時に登録することは可能です。
Macの場合、秘密鍵へのアクセス権を編集しないといけない場合があるようです。
ターミナルというアプリを起動しておき、保存した秘密鍵へのパス(つまり秘密鍵の場所)を 情報を見る から場所の部分をコピー、もしくはターミナルのウィンドウ内へ秘密鍵をドラッグ&ドロップすることで入手して、以下のコマンドを実行します。
chmod 400 (秘密鍵へのパス)
SSH鍵のペアを自作する
SSH接続に対応したアプリでは、SSH鍵を自作できることがあります。使用するコマンドは、ターミナルの場合、
ssh-keygen
です。(VPS側で鍵の形式を指定されている場合は、ssh-keygen -t ed25519やssh-keygen -t rsaのように、-t 鍵形式 、で指定できるようです)
鍵の保存場所指定時に、鍵のファイル名を変更することができます。複数の鍵を管理したいときなどに、ご活用ください。
有名かもしれない、SSH接続に使えるアプリたち
ターミナル
MacにもWindowsにも標準でついてくるアプリ(無料)です。
コピペはMacの場合、Command+C、Command+Vで可能です。Windowsでは、マウスの右クリックからのメニューで可能なようです。
Terminus
様々なデバイスで使えるアプリですが、設定の同期などは有料のようです。
筆者はこれをiPhoneで使用しています。コマンドを登録しておけるのが便利。
Tera Term
https://ja.osdn.net/projects/ttssh2/
Windows用のフリーウェア(無料ソフト)です。かつてはWebARENA IndigoのUbuntuに接続できない問題がありましたが、現在は解決されています。
コピペにはAlt+C、Alt+Vを用います。
PuTTY
https://www.chiark.greenend.org.uk/~sgtatham/putty/
Windows向けのフリーウェア(無料ソフト)です。
ドラッグした部分が自動でコピーされ、右クリックすると、コピーしたものが貼り付けられるらしいです。
RLogin
https://kmiya-culti.github.io/RLogin/
Windows用のフリーウェア(無料ソフト)です。
Ctrl+Vでペーストできます。
SSH接続に必要な下準備
-
サーバーに対して設定した秘密鍵
-
接続したい鯖のIPアドレス
-
接続したい鯖の接続用ポート番号
-
ユーザー名
上記の情報が必要です。
秘密鍵については、前述した通りとなります。
IPアドレスについては、VPS業者によってはホスト番号と書かれていることもあります。デフォルトの設定ではIPv4の方で行けることが多いです。
また、接続用のポート番号については、特に指定をしない場合、デフォルト設定の22番ポートが利用されるでしょう。
ユーザー名については、VPSサーバーの業者さんにより最初に準備されているユーザー名が違います。
国内の有名な業者さんたち、で紹介したVPSの項目中に『初期ユーザー名は「〇〇」です』と記載している〇〇の部分を打ち込んでください。
(ものすごく乱暴なことを言うと、rootまたはubuntuのことが多いので、先ずはそれらを試すのもアリといえばアリです。ものすごく乱暴ですが!)
ターミナルで取り敢えず接続できるか試す方法
ssh ユーザー名@IPアドレス -p ポート番号 -i 鍵へのパス
以上のコマンドを打ち込み、エンターキーです。
毎回これを入力するのは大変なため、configファイルに以下のように登録するという手段があるようです。場所は~/.ssh/configにありますが、存在しない場合は作成が必要です。
Macの場合
open ~/.ssh/config
以上のコマンドで、Configファイルが存在していれば、編集可能な状態で開かれます。もし> The file /Users/YOU/.ssh/config does not exist.と表示されたら、Configファイルが存在していないので、touch ~/.ssh/configを実行し、再度open ~/.ssh/configを実行しましょう。
Host 任意の名前
User ユーザー名
HostName IP
Port ポート番号
IdentityFile 鍵へのパス
これで、ssh 任意の名前、エンターキーでSSH接続できるようになるようです。
初回限定の警告
初回接続時だけ、「(意訳)初めて接続するけど大丈夫か?」みたいな警告が出ます。
アプリによっては、フィンガープリントという、指紋認証するための指紋を取ったぜみたいな模様が出てきて面白いです。
いずれにせよ、初回限定なので、接続続行で大丈夫です。
VPSをリセットした時は、このフィンガープリントが残っていることでエラーとなることがあります。対処法は、以下のコマンドです。
ssh-keygen -R 該当IP