2026年9月28日

2026年9月28日

SSHのknown_hostsの問題を解決する方法

ステップ1: known_hostsの問題概要

known_hostsファイルは、SSH接続時にホストキーを保存し、そのホストの認証を確認するためのものです。ただし、このファイルが誤って更新されると、エラーが発生して接続に失敗することがあります。この記事では、そのような問題を解決する方法を詳しく説明します。

ステップ2: known_hostsの問題発生場面

known_hostsのエラーは以下の状況で起こることが多いです:

  • 新しいSSHサーバーへの接続
  • SSHサーバーのIPアドレスが変更された場合
  • known_hostsファイルに不正なホストキーが追加された場合
  • 構成ファイルの所有者やパーミッションが間違っている場合

ステップ3: known_hostsの問題を解決する手順

ステップ1: 既存のknown_hostsファイルをバックアップ

まず、現在のknown_hostsファイルをバックアップします。これは重要なステップで、将来的に必要な場合に元に戻すことができます。

# 既存のknown_hostsファイルをバックアップ
cp ~/.ssh/known_hosts ~/.ssh/known_hosts.bak

ステップ2: known_hostsファイルを削除

次に、問題のあるknown_hostsファイルを削除します。これにより、古いまたは不正なホストキーが削除され、接続再試行時に新しいキーが自動的に保存されます。

# known_hostsファイルを削除
rm ~/.ssh/known_hosts

ステップ3: 新たなSSH接続を試みる

known_hostsファイルが削除された後、再度SSH接続を試みてください。この操作により、新しいホストキーが正しく保存され、エラーが解決します。

# 新しいSSH接続を行う
ssh username@server_address

ステップ4: known_hostsファイルの所有者とパーミッションを確認

最後に、known_hostsファイルの所有者とパーミッションが適切であることを確認します。これはセキュリティ上の理由から重要です。

# 所有者とパーミッションを確認
ls -l ~/.ssh/known_hosts

通常は以下の権限でなければならないはずです:

  • ファイル所有者は user
  • パーミッション: -rw------- または 600
# 所有者とパーミッションが適切でない場合は修正します
chown user:user ~/.ssh/known_hosts
chmod 600 ~/.ssh/known_hosts

注意事項

  • known_hostsファイルのバックアップは重要なため、定期的に実施することをおすすめします。
  • 削除したknown_hostsファイルが自動再生成される場合があるため、手動で管理することが推奨されます。
  • 環境によって異なる設定が必要な場合もあるため、自身の環境に合った適切な操作を行うことが重要です。

まとめ

1. バックアップ: known_hostsファイルをバックアップし、将来的に必要になったときに元に戻すことができる

2. 削除: 不正または古いknown_hostsファイルを削除し、新しい接続で自動的に更新されるようにする

3. 再接続: 新たなSSH接続を行い、問題の解決を確認する

4. 所有者とパーミッションの確認: known_hostsファイルの所有者とパーミッションが適切であることを確認し、必要に応じて修正を行う

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ
▲