実践:公開鍵認証方式でSSH接続する

実践:公開鍵認証方式でSSH接続する

公開鍵認証方式の接続手順

① 公開鍵/秘密鍵の作成

WinSCPを介して、PuTTY Key Generatorを起動し、公開(秘密)鍵を作成します。

② 公開鍵をサーバーにセットする

公開鍵を接続先のサーバー(CentOS)にFileZillaを使って転送します。

③ SSH(SFTP)接続する

①で作成した秘密鍵を使って、サーバー(CentOS)に、公開鍵認証を介してSSH(SFTP)接続します。

① 公開鍵/秘密鍵の作成

1. WinSCPの起動

WinSCPを起動するために、デスクトップにあるWinSCPのショートカットをダブルクリックします。

起動が完了すれば、WinSCPのログイン画面が表示されます。

2. PuTTY Key Generatorの起動

左下のツールのプルダウンメニューから「PuTTYgenを実行」をクリックします

3. 鍵の生成開始

そのまま「Generate」(鍵の生成)をクリックします

Type of generate(鍵の形式)の設定について

…一般的に使われている「RSA」のままでOKです。

Number of bits in a generated key(鍵の強度)

…一般的に使われている「2048」のままでOK

4. 鍵の生成

ウィンドウ内で適当にマウスを動かします

マウスの動いた軌跡から鍵が作られるので、バーがどんどん進んでいきます。

5. ログイン時のパスフレーズの指定

バーが最後まで進んだら、必要情報を入力します

1) Key commentはそのままでOK

鍵に自分で付けることのできるコメントです。
好きなコメントを入れてもOK

2) Key passphrase(パスフレーズ)を入力

…秘密鍵のパスワードです。
好きなパスワードを入力してください。
※ログイン時のシステムのパスワードは使用しないでください

3) Confirm passphraseに②を再入力

※ 公開鍵認証では、サーバーへSSH通信でログインする際にはパスワードの代わりに「パスフレーズ」を使用します。
「パスフレーズ」は忘れないように、メモに残してください。

6. 秘密鍵の保存①

必要情報を入力したところで秘密鍵を保存しましょう

「Save private key」をクリックします

7. 秘密鍵の保存②

すると、保存画面が開くので、ファイル名(private_key)を入力し、「保存(s)」をクリックします。

保存先にはデスクトップフォルダなど、わかりやすいフォルダを指定しましょう。

※ 秘密鍵は無くすとサーバーに接続できませんので、保存した秘密鍵は削除しないでください。

8. 公開鍵の保存①:鍵情報をコピーする

秘密鍵を保存すると、元の画面に戻ってくるので続けて公開鍵を保存します。

枠内の文字をもれなくすべて選択した上で、コピー(右クリック→「コピー」)してください。

※この暗号のようなものが公開鍵です。

9. 公開鍵の保存②:鍵情報をメモ帳に貼り付ける

コピーしたら、メモ帳を開き、コピーした内容を貼り付けてください(右クリック→「貼り付け」)。

公開鍵の保存③:公開鍵として保存する

公開鍵がメモ帳にコピーできたら、今度はファイルを保存するため、「ファイル > 名前を付けて保存」を選択してください。

すると、保存画面が開くので、

  1. 保存先のフォルダに、デスクトップフォルダなど、わかりやすい場所を指定し、
  2. ファイル名(public_key.pub)を入力したら、
  3. 拡張子の「.txt」は消した上で、
  4. 保存(「保存(s)」をクリック)してください。

以上、保存したファイルは、公開鍵のファイルになります。

保存が終わったら、今開いてるKeyGenerateの画面は閉じてください。

②公開鍵をサーバーにセットする

公開(秘密)鍵の作成が終わったところで、公開鍵(public_key.pub)をサーバー(CentOS)に設定していきましょう。

公開鍵の転送には、前章で使用したFileZillaを使用します。

1. FileZillaを起動する

デスクトップにあるFileZillaのショートカットをダブルクリックしてください。

2. サーバー(CentOS)にSFTP接続する

FileZilaを介してCentOSにSFTP接続をします。

接続方法については前章を参考にしてください。

参考:「 FTP サーバーへファイル転送 > 実践:FTPサーバーへファイルを転送する」

前章から接続したままであれば、そのまま次のページに進んでください。

3. 転送元(先)のディレクトリに移動する

以上、SFTP接続ができたところで、公開鍵「public_key.pub」をCentOSにアップロード(転送)する前に、
ローカルサイト(WindowsOS)とリモートサイト(CentOS)のそれぞれのパスを、以下のディレクトリに変更ください。

4. 公開鍵をサーバー(CentOS)にアップロード(転送)する

ディレクトリが移動できたところで、ローカルサイト(WindowsOS)から公開鍵(public_key.pub)を、
リモートサイト(CentOS)にドラッグ&ドロップでアップロードしてください。

4. 公開鍵用のディレクトリを作成する

アップロードが完了したら今度は、TeraTermの画面に戻り、公開鍵用のディレクトリを作成します。

[root@localhost ~]#mkdir -p /home/centos/.ssh
[root@localhost ~]#chmod 700 /home/centos/.ssh/

5. 公開鍵を公開鍵用のディレクトリにコピーする

アップロードした公開鍵(public_key.put)を、公開鍵用のディレクトリ(.ssh)にコピー(ファイル名:「authorized_keys」)します。

[root@localhost ~]#cat public_key.pub >> /home/centos/.ssh/authorized_keys

6. 公開鍵のパーミッションを変更する

コピーした公開鍵(authorized-keys)のパーミッションを「600(所有者が読み書き可)」に変更します。

[root@localhost ~]#chmod 600 /home/centos/.ssh/authorized_keys

7. 公開鍵用のディレクトリの所有者を変更する

公開鍵用のディレクトリ(.ssh)以下の所有者を、実際に公開鍵認証でログインしたいSSH接続する一般ユーザー(centos)に変更します。

[root@localhost ~]#chown -R centos /home/centos/.ssh/

8. コピー元の公開鍵を削除する

最後にコピー元の公開鍵(public_key.pub )を削除します。

[root@localhost ~]#rm -f public_key.pub

③ SSH(SFTP)接続する

公開鍵の設定が終わったところで、実際に公開鍵認証を使って、サーバー(CentOS)にSSH通信をしましょう。

実際の通信は、WinSCPを使って、SFTP(SSH+FTP)接続を行います。

1. WinSCPの起動

WinSCPを起動してください。

2. ログイン(接続)情報の入力

ログイン画面に、

  • ファイルプロトコル: 「SFTP」を選択
  • ホスト名 : IPアドレス(192.168.135.144など)
  • ポート番号 : 22 (※SSH通信のポート番号)
  • ユーザ名 : centos

を入力します。

3. 認証方式(秘密鍵)の指定①:高度なサイトの設定画面を開く

続いて、パスワードの下の「設定」のプルダウンメニューから「設定」をクリックします

4. 認証方式(秘密鍵)の指定②:認証の設定画面を開く

高度なサイトの設定画面が開くので、左側のメニューから「SSH >認証」をクリックします。

5. 認証方式(秘密鍵)の指定③

続いて、「認証条件 > 秘密鍵」の「…(参照ボタン)」をクリックします。

6. 認証方式(秘密鍵)の指定④:秘密鍵を指定する

エクスプローラーが開くのでさっき保存したprivate_keyを選択し、「開く」をクリックします。

これにより公開鍵認証の際に、該当の秘密鍵を指定したことになります。

7. 元の画面に戻る

これでログイン情報が揃ったので、元の画面に戻るために、「OK」をクリックします。

8. ログインする

「ログイン」をクリックします

9. 確認画面の表示

確認画面が出ますので、接続するサーバーに間違いがないことを確認し「はい」をクリックします。

※サーバーのホスト鍵がWinSCPに未登録のときに表示されます。

10. パスフレーズの入力

パスフレーズを求められるので、さっき設定したパスフレーズを入力して、「OK」をクリックします

11. ログイン完了

右側の画面に、ログインしたユーザー(centos)のホームディレクトリ(/home/centos)が表示されたら、ログイン完了です

WinSCPは、FTP, SFTP, SCPの他にも、送受信データをSSL/TSLで暗号化するFTPSにも対応しており、手元のPCとサーバー間で、ファイルのアップロードやダウンロードを安全に行うことができる、便利で高機能なソフトです。
基本の使い方が確認できたら、その他の機能も確認して効率よく仕事を進めましょう。

これで第6章 SSHサーバーへ接続(WinSCP)が完了しました!


NEXT>> 7章 Webサーバーの構築(Apache)