SSH - ssh/known_host ファイルにホストを追加する方法

SSH - ssh/known_host ファイルにホストを追加する方法

known_hosts ファイルは次のようになります:-

[localhost]:8001 ssh-dss AAAAB3NzaC1kc3MAAACBAP1/U4EddRIpU   
[10.18.60.198]:8001 ssh-dss AAAAB3NzaC1kc3MAAACBAP1/U4EddRIpUt9
// key are trimmed at the end

これらのキーは Eclipse IDE を介して追加されます。ホスト (IP) とそのキーを ssh/known_hosts ファイルに追加する他の方法を知りたいです。

詳細:- 追加方法ssh-dssknown_hosts ファイル内の任意のホスト (IP) のキー。

編集:-

私はBRMSプロジェクトにgitを使用するJBoss BRMSを使用しています。そのため、Eclipse IDEでGit経由でBRMSプロジェクトをクローンするときに、次のエラーが発生します。

ホスト 'localhost' の信頼性を確立できません。DSA
キー フィンガープリントは e2:2c:62 //trimmed です。
接続を続行してもよろしいですか?

そして、ssh-dss キーが known_hosts ファイルに自動的に追加されます。

では、そのキーをどこで見つけて、knownhostsファイルに手動で追加すればよいのでしょうか

答え1

のフォーマットは~/.ssh/known_hostsOpenSSHによって定義されています。他のソフトウェアではOpenSSH(sshコマンドなど) が存在するか、必ずしも 100% 互換性がない独自の実装が存在する可能性があります。

OpenSSHのknown_hostsフォーマットについては、sshd(8) マニュアルページの「ssh_known_hosts ファイル形式」の項を参照してください。ホストとキーのペアごとに 1 行ずつ記述されたテキスト ファイルであると書かれています。

これらのファイルの各行には、マーカー (オプション)、ホスト名、キータイプ、base64 エンコードされたキー、コメントのフィールドが含まれます。フィールドはスペースで区切られます。[…] ホスト名は、カンマで区切られたパターンのリストです (' *' と ' ' はワイルドカードとして機能します)。各パターンは、ホスト名と照合されます。[…] ホスト名またはアドレスは、オプションで ' ' と ' ' の括弧?で囲み、その後に ' ' と非標準のポート番号を続けることができます。[]:

新しいホストのキーを自動的に追加するには、そのホストに SSH 接続するだけです。

新しいホストのキーを手動で追加するには、1) テキスト エディターで known_hosts ファイルを開き、2) 同じ形式に従って新しいホストのキーを追加します。(キーは、接続先のホストと一致する必要があります。 を使用して、ホストのキーを照会できますssh-keyscan -t <type> <address>。)

キーを追加するには全てホストの場合は、*ホスト名としてパターンを使用します。これはすべてのホスト名とアドレスに一致します。すべてのホストにキーを追加するには特定のポート[*]:8001ホスト名として使用します。

答え2

例えば、以下を追加する必要があります127.0.0.1known_hosts へ:

ssh-keyscan -H 127.0.0.1 >> ~/.ssh/known_hosts

Docker ファイルの場合は以下を使用します:

RUN apt-get update  \
    && apt-get install -y \
    ssh \
    && rm -rf /var/lib/apt/lists/* \
    && mkdir -p ~/.ssh/ \
    && ssh-keyscan -H 192.168.12.31 >> ~/.ssh/known_hosts

どこでapt-get install -y ssh- 使用可能かsshキースキャンコマンドラインで、rm -rf /var/lib/apt/lists/*apt を使用してダウンロードしたパッケージ情報をクリーンアップします。

答え3

ターゲットに ssh で接続し、キーを保存するかどうかを尋ねられたら yes と入力します。

関連情報