実践:公開鍵認証方式で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. 公開鍵の保存②:鍵情報をメモ帳に貼り付ける
コピーしたら、メモ帳を開き、コピーした内容を貼り付けてください(右クリック→「貼り付け」)。
公開鍵の保存③:公開鍵として保存する
公開鍵がメモ帳にコピーできたら、今度はファイルを保存するため、「ファイル > 名前を付けて保存」を選択してください。
すると、保存画面が開くので、
- 保存先のフォルダに、デスクトップフォルダなど、わかりやすい場所を指定し、
- ファイル名(public_key.pub)を入力したら、
- 拡張子の「.txt」は消した上で、
- 保存(「保存(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)が完了しました!