VPSをはじめリモートにあるサーバーを遠隔で操作するにはssh(エス・エス・エイチ)を使います。
MacやLinuxには最初から入っているsshですが、Windowsは最近のバージョンにしか入っていないため、必要に応じてインストールする必要があります。
SSHとは
SSHはリモートのサーバーを接続して遠隔でコマンドを実行するために使用されます。
SSHを使うと、たとえば自宅PCからインターネット上のレンタルサーバーなどに接続して
「このファイルをあそこにコピーしなさい」
「このサービスを起動しなさい」
といった操作をすることができるようになります。
telnetは昔のもの
sshと似たようなものにtelnetというものがありますが、telnetは今はもう使いません。
sshもtelnetもできることは全く同じなのですが、sshは通信が暗号化されるのに対しtelnetは通信が暗号化されません。そのため通信内容を盗聴されてしまう恐れがあります。
たとえば
「新しいユーザー"user"を"password"というパスワードで作成してください」
というコマンドを送ったきに、それが盗聴されてしまうと大きなセキュリティリスクとなります。
今はもうtelnetを使うことはないのでsshだけ使えれば大丈夫です。
SSHがインストールされているか確認する
古いバージョンのWindowsでは、初期状態ではSSHはインストールされていませんので、まずはSSHがインストールされているか確認しましょう。方法は以下の通りです。
- コマンドプロンプトを立ち上げ
- sshと打ち込む
SSHコマンドの使い方が表示されたら、SSHはすでにインストールされています。「コマンドが見つかりません」とエラーが出たら、SSHは入っていないことになります。
WindowsでSSHを使えるようにする方法
WindowsにSSHをインストールする方法は以下の通りです。
1. OpenSSHをダウンロードする
https://github.com/PowerShell/Win32-OpenSSH/releases を開き、Assetsのところから、OpenSSH-Win32.zipまたはOpenSSH-Win64.zipをダウンロードします。
2. ローカルフォルダに展開する
場所はお好みでいいのですが、ここではC:\tools\OpenSSH-Win64 というフォルダに展開します。
3. 環境変数を更新する
- エクスプローラからPCを右クリックしてプロパティを選択
- システムのダイアログでシステムの詳細設定をクリック
- システムのプロパティダイアログで環境変数をクリック
- ユーザーの環境変数にPATHがあるかどうか確認
- すでにある場合、編集を押して、既存の変数の値の後ろに;C:\tools\OpenSSH-Win64 と追加(最初のセミコロンを忘れないように注意)
- PATH変数が存在しない場合、新規を押して、変数名にPATHを、変数値にはC:\tools\OpenSSH-Win64と入力。
以上でインストール完了です。
先ほど追加した環境変数を読み込ませるため、コマンドプロンプトをすでに開いている場合は新しく開き直してください。
コマンドプロンプトにsshと入力して、以下のようなメッセージが表示されればOKです。
C:\>ssh usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]]
PuTTYについて
Windows版のSSHクライアントには、PuTTY(パティ)というプログラムもあります。
PuTTYは古くからあるので馴染みがある方も多く、人からこのツールを使うようにすすめられるかもしれません。
OpenSSHでもPuTTYでもsshはできるのですが、個人的にはPuTTYよりもOpenSSH(ここで紹介したクライアント)の使用をおすすめしています。
理由は以下の通りです
- OpenSSHはWindowsでもLinuxでもMacでも同じ設定方法だから
- SSHを使ったファイルの転送用のコマンドも使えて、多くの場合はGUIアプリよりも便利
- パスワード認証をスキップする方法(鍵認証)なども利用できる
- 作成した鍵のファイルを他のオペレーティングシステムでも使いまわせる
- PuTTYは独自の鍵のファイル形式を使用していて変換がややこしい
などです。最初はPuTTYの方がとっつきやすいと感じるかもしれませんが、OpenSSHクライアントで使い方に慣れた方があとあと苦労が少なくなります。