https://idea-hack.com/blog/116206/
SSH接続とは? 基本からPCでの秘密鍵・公開鍵の作成まで紹介します

SSH接続とは? 基本からPCでの秘密鍵・公開鍵の作成まで紹介します

サーバーにセキュリティを確保した上で適切にリモート接続する方法をご存知ですか?FTPはご存知のかたは多いでしょう。でもSSHでの接続方法はご存知ですか?この記事ではSSH接続を初めて行ってみる傾けに秘密鍵・公開鍵の作成方法も含めて説明します。

SSH接続の使い所

サーバーへログインするときは、そのネットワーク接続が安全かどうかを常に意識すべきです。今日に至ってもFTP接続を使う人が多いですが、FTPはデータの暗号化が行われないので、転送時にデータを抜き取られる危険性を常に持っています。

データの暗号化を行ってファイルの転送を行うにはSFTPやFTPSを使って行うことが多いですが、複数のファイルの一括転送以外のことをこれらの形式で行う際は「もっと便利な方法はないのか?」と思うこともあるでしょう。

例えば・・・・

  • 1つのファイルの1行だけ編集したい
  • デバックログをオンにしたいだけ
  • データベース操作をしたい
  • サイトの負荷を各位したい
  • 直接サーバーで細かな調整を行いながら開発したい

などです。

KAZU

そもそも [SFTP/FTP/FTPS] からはデータベースの操作やLINUXコマンドの実行はできません。

この様な時は[SSH]が必要になります。

SSHとは何か?

SSH

SSHはUNIXベースのコマンドインラーフェースプロトコルです。仮に自分の現状のネットワーク接続に脆弱性があろうとも、サーバーや公共のネットワークサービスに対して安全にログインするためのプロトコルです。

鍵認証(公開鍵と秘密鍵)という異なる2つの鍵を紐付けることができるユーザーに対してのみログインを許可する仕組みを使います。

サーバー上に公開鍵をアップロードし、秘密鍵を自分のパソコン上に保持しておくことで、その秘密鍵で認証を行うことができる自分のパソコンからだけアクセスが可能になります。

KAZU

[鍵認証] の他に[ パスワード認証]による接続方法もあります。ただし、[鍵認証]の方がより安全なので本稿では[鍵認証]に絞って説明します。

SSH接続を行うために必要なものは下記の2つです。

  • SSHクライアント(Macのターミナルなど)
  • ログイン認証情報(鍵認証ペア・またはパスワード)

Macをお使いの場合は [ターミナル]がすでにインストールされているので問題ありません。しかし、Windowsの場合は接続インターフェースをインストールする必要があります。

KAZU

Windowsをお使いの場合のSSHクライアントに関してはこちらの比較表が参考になりなす。私は昔Windowsを使っていて、その際はPuTTYを使っていました。

SSH接続の条件

SSH接続を行うために必要な条件は下記の通りです。

  • お使いのパソコンに鍵認証のペアを作成したりするパーミッションがある(会社のPCだとないことも・・)
  • 接続先のWAFがリモート接続を許可している
  • 接続先がIPアドレスまたはネームベースのIPアドレス(SNI)を持っている
  • SSHクライアントを持っている

SSH接続の行い方(鍵認証)

それでは、SSH接続を鍵認証で行う方法について説明していきます。まずは鍵認証のペアを作成するところから始めていきます。

私はMac OSを使っているので [ターミナル] を使って作業を行います。

Step 1
ターミナルを開きます
ターミナルを開く

ターミナルを開いてください。

Step 2
鍵認証のペアを作成
鍵認証のサンプル

次のコマンドを実行します。

Linux Command
ssh-keygen -t rsa

-t オプションで認証キーのタイプを定義することができます。初期値はRSAです。今回は意図的にRSAを指定していますが書かなくても構いません。

実行すると下記のコマンドが返ってきます。

Linux Command
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/demo/.ssh/id_rsa):

鍵認証が作成されました。ここで、鍵認証の保存先が表示されます。Mac OS Xの場合、鍵認証のデフォルトの保存先は「ユーザーのホームディレクトリ 」になります。

今度は下記のメッセージが返ってきました。

Linux Command
Enter passphrase (empty for no passphrase):

ここでは「秘密鍵にかけるパスワードをどうするか」が聞かれています。ここでパスワードを指定することでセキュリティをより強固な物にすることができ、万が一パソコンが盗まれてPCのログイン認証をとっぱされてもサーバーへのアクセスを防ぐことが可能です。

一方でSSH接続の度にパスワードを聞かれるのでログインに1手間増えます。

必要なければそのまま[Enter]を押してください。

KAZU

私はいつもパスワードを登録しています。

パスワードを登録する場合、下記のメッセージが返ってきます。再度同じパスワードを入力します。

Linux Command
Enter same passphrase again:

これで鍵認証は完了です。上の画像の様に鍵認証の情報が返されているはずです。

Step 3
サーバーに公開鍵をアップロード

お使いのホスティング会社の管理画面にSSH接続のための[公開鍵]を保存するための場所があるはずなので、そこに先ほど作成した[公開鍵]を保存します。詳細は各ホスティング会社のHPをご確認ください。

Step 4
接続テスト

サーバーに公開鍵をアップロードができましたら、SSH接続が可能になります。残念ながらSSHの接続情報に関しても各ホスティング会社の管理画面から確認いただく必要があります。

基本的な形式は下記の通りです。

Linux Command
ssh 【SSHアカウント名】@【ホスト先サーバー名(ドメイン)】

[SSHアカウント名]は管理画面から作成する必要があるはずです。

Step 5
作業を行う

これで[SSH接続]は完了です。

注意

公開鍵をサーバーにアップロードした後、必ずご自身のパソコンからは削除してください。ここに保存されていると、パソコンが盗まれた際の対策の意味がなくなります。