PHP Manual

SSHとRSA2鍵による通信

12. 11. 2022

SSHは、ファイルや端末を暗号化して転送するためのネットワークプロトコルです。SSHは、Webサーバーのリモートコントロールや安全なファイル転送に最もよく使用されます。FTPとは異なり、ネイティブな暗号化接続を提供します。SSHはデフォルトのポート`22`で通信を行います。接続は、ユーザー名と接続先サーバーのアドレスで初期化されます。認証には、パスワード(非推奨)またはSSH RSA2キー(推奨)を使用できます。

鍵の取得(生成)

サーバーに接続する前に、最初の SSH RSA2 鍵を取得(または生成)する必要があります。RSA2`アルゴリズムであることが重要である。これは、キーの数が多く、すべてのキーが使えるとは限らないからです。

Linuxでは,鍵の複雑さ(今回は4096)と認証ユーザのメールアドレスを指定して, ssh-keygen ユーティリティを使って生成します.

ssh-keygen -t rsa -b 4096 -C "jan@barasek.com"

コマンドを実行すると、鍵を保存するパスと、任意の password (認証パスワード) を聞かれます。パスには何も入力せず(デフォルトの場所が自動的に選ばれます)、オプションでパスフレーズを入力します(入力した場合、鍵を使用する前に毎回同じパスワードを入力する必要があります)。

生成された鍵は自動的にデフォルトの場所 ~/.ssh に、つまり現在のユーザのホームディレクトリにある .ssh ディレクトリに保存されます。

WindowsでSSHキーを生成する

残念ながら、WindowsにはSSHキーのデフォルトのパスがありません。そのため、例えば Putty ユーティリティと PuttyGen をインストールして、キーを生成するのが理想的です。常に RSA2 アルゴリズムを選択してください。ここでも鍵のペアが生成されますので、どこかに安全に保管してください。SSH鍵を Putty で使用する前に、鍵を取得するディスクパスを選択する必要があります。Linuxでは、これは不要で、デフォルトのディスクパスが存在します。

キーセキュリティ

キーが生成されるとき、実際には2つ生成されます。公開鍵(通信を許可するために相手に渡すもの)と秘密鍵(自分だけのもので、誰にも教えず、通信を復号するために使うもの)が1つ。

秘密鍵は絶対に失くさないことが肝心です。それを失うということは、コミュニケーション全体が壊れるということなのです

一般に、漏洩の可能性を減らすために、デバイスとユーザーごとに固有の公開鍵/秘密鍵ペアを生成することが推奨されます。ただし、デバイス間でキーを転送したい場合は、可能です。SSHキーはパスワードレベルなので、すぐに別のマシンに移動しても接続はうまくいきます。

サーバーによっては、最後にSSHで通信したデバイスを記憶しているものもあります。そのため、新しいパソコンにキーを移動した後、接続ができなくなる可能性があります。この場合、サーバー上のキーキャッシュをクリアする必要があります。

サーバーに接続するためのキーを認証する

サーバへの接続には ssh コマンドを使用する。ユーザーとドメインを入力するだけです。

ssh root@baraja.cz

そして、SSH接続の確立を試みます。SSHキーが動作し、正しく設定されている場合は、自動的に接続されます。そうでない場合は、パスワードの入力が必要です。

パスワードの代わりにSSH鍵を使用してサーバーに対して認証を行いたい場合、サーバーに公開鍵を転送する必要があります。

コマンドで表示させるだけです。

cat ~/.ssh/id_rsa.pub

そして、その内容全体をターゲットサーバーの ~/.ssh/authorized_keys という場所にコピーしてください。複数のキーがある場合は、それぞれを別ラインにします。

Jan Barášek   Více o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Související články

1.
4.
Status:
All systems normal.
2024