この公開鍵認証方式は、サーバ側に公開鍵を置いておき、秘密鍵を持っているクライアントから接続できるという接続方式です。この方式のメリットは、秘密鍵さえ漏れなければ意図しない第三者がサーバに接続することが出来なくなるという点です。パスワード認証方式では、ユーザ名とパスワードが漏れてしまえば、どのクライアントからでも簡単に接続可能となるので、鍵認証方式の方が安全性がより高いものとなります。デメリットとしては、秘密鍵がなければ接続出来ないので、外出先からサーバにSSH接続したい場合など、秘密鍵がないクライアントからサーバのメンテナンスが出来なくなってしまう点です。鍵の作成について鍵はどっちで作るのが良いの?公開鍵認証方式でSSH接続を行うために、まず公開鍵と秘密鍵を作成していくのですが、この鍵作成作業はサーバ側、クライアント側どちらでも作成することが出来ます。この鍵生成作業はどちらで実行するのが良いのでしょう?色々と調べてみたのですが、鍵作成作業はクライアント側で作成したほうが良いらしいです。SSHでサーバに接続し鍵を作成すると、作成した秘密鍵をクライアントに持ってくる作業が発生します。scpなどを使えば通信経路は暗号化されているとはいえ、インターネットやLAN上に秘密鍵が流れてしまうのは、セキュリティ上あまり良くないということでした。クライアント側で鍵を作成し、サーバへ転送する方式で設定を行っています。クライアント側の作業はTeraTermを使用した場合を例にして、手順を説明します。※TeraTerm以外の鍵作成方法はそれぞれ別ページで説明します。CentOSでの鍵作成方法TeraTerm起動TeraTermを起動し、「設定」-「SSH鍵生成」を選択します。「鍵の種類」欄で作成する鍵の暗号方式を選択し、「生成」ボタンを押下します。今回は暗号化強度が高い「ECDSA-521」を選択していますが、サーバ側やクライアント側が「ECDSA」方式に対応していない場合は、「RSA」方式を選択し、ビット数は2048以上が良いと思います※「ECDSA」はopenssl-5.7から対応しています。鍵のパスフレーズを入力し、「公開鍵の保存」「秘密鍵の保存」ボタンを押下し、鍵を任意の場所に保存します。「ECDSA」方式で生成した鍵の名前はそれぞれ下記のとおりとなります。id_ecdsa.pub※RSA方式で作成するとこんな感じのファイル名になります。id_rsa.pub鍵の生成と保存が完了しましたら、右上の「×」を押下し画面を閉じます。「秘密鍵の保存」ボタンを押下した際に、「空のパスワードを使用しますか?」と警告画面がでます。「はい」ボタンを押下することで、SSHで接続する際にパスワードの入力が必要無い鍵を作成することが出来ます。この場合、秘密鍵があるクライアントからは、何の認証もなくサーバへログイン出来てしまいますので、クライアントの管理を十分に注意して運用する必要があります。作成した公開鍵を、サーバ側に転送するのですが、今回は「scp」を使用した方法を解説します。「ファイル」-「新しい接続」と選択し、公開鍵を設定するサーバに今作成した鍵を使用するユーザで接続します。※私は「tamohiko」ユーザで鍵認証接続をしたいので、このユーザで接続しました。SCP」と選択します。Copy」画面が表示されるので、「...」ボタンを押下し、先ほど作成した公開鍵を選択し、「Send」ボタンを押下し、公開鍵をサーバに転送します。公開鍵はユーザのホームディレクトリに転送されます。※私の場合は「/home/tamohiko/id_ecdsa.pub」に転送されています。公開鍵の設置ここからはサーバ側での作業となります。公開鍵の内容は、「ユーザホームディレクトリ/.ssh/authorized_keys」ファイルに記述する必要があります。私の場合ですと、以下のファイルとなります。/home/tamohiko/.ssh/authorized_keysこのファイルが無い場合は自分で作成する必要がありますので、ファイルを作成するところからの手順を下記に記述します。※ファイルがある場合はこの手順は飛ばして下さい。「authorized_keys」ファイルの作成が完了しましたら、先ほど転送した公開鍵の内容を「cat」コマンドを使用して転記していきます。「/etc/ssh/sshd_config」を編集しパスワード認証を出来ないようにし、秘密鍵がないクライアントからの接続を拒否するようにします。no設定反映sshdを再起動することで設定反映することが出来ます。注意点!!現在SSHで接続しているのならば、その接続はそのまま接続して置いたままにしてください。接続試験は、新しくSSHクライアントを立ち上げて行います。コマンドが間違っていたので修正しました。CentOS7ならsystemctlコマンドでも再起動できます。新しくTeraTermを立ち上げて接続試験をします。「ユーザ名」と「パスフレーズ」を入力します。(パスフレーズは鍵を作成した際に設定したものを入力します)「RSA/DSA/ECDSA/ED25519鍵を使う」にチェックを入れ、「秘密鍵」ボタンを押下し秘密鍵を選択し、「OK」ボタンを押下します。設定に問題がなければ無事ログインできるはずです。通常のパスワード認証で接続が出来ないことも確認してください。接続できないことが確認できたら、作業完了となります。SSHで鍵認証方式を行う際に必要な、「秘密鍵」と「公開鍵」をCentOS上で作成する方法です。CentOSのデフォルト状態のsshはかなりセキュリティが甘い状態となっています。複数NICがある場合や、NICにsecondaryアドレスを振っている場合に、sshの接続を受け付けるIPアドレスを指定する方法です...記事を読むssh-agentを使って公開鍵認証方式のsshパスワード入力を省略する方法ssh-agentを使用した、公開鍵認証方式のSSHパスフレーズ入力を省略する方法です。簡単に...記事を読む【SSH】任意の回数ログイン失敗でアカウントをロックする方法CentOS7で任意の回数SSHでログインを失敗したユーザのアカウントをロックする方法です。CentOS7...記事を読むSSHのセキュリティ対策について私が普段行っているSSHのセキュリティ対策についてまとめました。比較的簡単にSSHのセキュリティを向上...記事を読むsshdで「IPv4」「IPv6」のどちらかのプロトコルのみ接続させる方法sshdで接続させるIPプロトコルを指定する方法です。外部(インターネット)に設置してあるサーバには、ブルートフォース等の攻撃が常に行われてきます。返信コメントの確認が遅くなりすいません。ご指摘頂きました箇所ですが、該当部分の修正をさせて頂きました。ありがとうございました。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。なっていますが、利用しないではないかと、、、。--parentsでフォルダ構造(パス)まるごとコピーparentsの綴りが誤っているようです。いろんなサイト様を参照しつつ最終的にこちらのサイト様で無事に動作させることができました。ありがとうございます。wordpressインストール大変参考になりました。ありがとうございました。server-memo.net.。