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_hosts
OpenSSHによって定義されています。他のソフトウェアでは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 と入力します。