web-dev-qa-db-ja.com

SSH:欠落の処理方法:/home/USER/.ssh/known_hosts

Ubuntu Server 12.10の学習に使用している古いラップトップがあります。 Ubuntu Serverを再フォーマットしてインストールする前に、Ubuntu Desktopが使用されていました。

Ubuntu Desktopでは、no-ip.comホストドメインを使用してssh経由でマシンにアクセスしていました(問題なし)。再フォーマット後、同じno-ip.comドメインを使用してこの同じマシン(ホームLANの静的IPと同じ)にアクセスしようとしていますが、次のエラーが表示されます。

   WARNING: REMOTE Host IDENTIFICATION HAS CHANGED!    
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a Host key has just been changed.
The fingerprint for the ECDSA key sent by the remote Host is
XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX: (Omitted).
Please contact your system administrator.
Add correct Host key in /home/guest/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/guest/.ssh/known_hosts:2
  remove with: ssh-keygen -f "/home/guest/.ssh/known_hosts" -R username.no-ip.org
ECDSA Host key for username.no-ip.org has changed and you have requested strict checking.
Host key verification failed.

確かに、私はエラーメッセージの多くを理解していません。 Googleで検索した後、次のコマンドを実行することにしました。

$ ssh-keygen -R {username.no-ip.org}

次のエラーが発生します。

ssh-keygen: /home/jerry/.ssh/known_hosts: No such file or directory

エラーメッセージに示されている「ゲスト」もありません。

jerry@mediaserver:/home$ tree -a
.
└── jerry
    ├── .bash_history
    ├── .bash_logout
    ├── .bashrc
    ├── .cache
    │   └── motd.legal-displayed
    ├── .config
    │   └── htop
    │       └── htoprc
    └── .profile

次の質問があります:このファイルが存在しない場合、エラーメッセージに記載されている矛盾はどこにありますか?おそらくこのファイルを作成する必要がありますか?

私と一緒にこれをやり遂げてくれる人に感謝します!

-ジェリー

編集:

ローカルに割り当てられたIPアドレスを使用してローカルでsshできることを追加する必要があります。

6
jerrycrabb

警告は、ホストIDが(古いインストールから新しいインストールに)変更されたことを意味します。それは良い!動作し、変更されたことを知らせます...

(rootではなく)非特権ユーザーとしてログインし、隠しディレクトリ/home/jerry/.sshを作成します。

cd; mkdir .ssh; chmod 0700 .ssh

その時点で、ホストをknown_hostsファイル(/home/jerry/.ssh/known_hosts)に追加できます。

または、ゲストとして接続する場合は、ジェリーではなくユーザーであるゲストと同じ操作を行います。

すべての新規ユーザー用に.sshディレクトリーを作成したい場合は、.sshディレクトリーを/ etc/skelに追加してください。/etc/skelディレクトリには、すべての新しいユーザーが持つべきファイルとディレクトリが含まれています。

Sudo mkdir /etc/skel/.ssh; Sudo chmod 0700 /etc/skel/.ssh

その後、作成するすべての新しいユーザーには、適切な権限(0700)を持つ.sshディレクトリが作成されます。

4
user8290