デスクトップと2台のサーバーの間にsshキーペアを設定し、サーバーからデスクトップに移動しましたが、デスクトップにOSを再インストールした後、これによってデスクトップにキーペアを再確立できません。
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t
ssh-copy-id username@server
次のエラーが表示されます。
(italicsの名前は無邪気なものを保護するために変更されました私のデスクトップはUbuntuで、答えが見つかりません here )
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ @警告:リモートホストIDが変更されました! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@ IT IS誰かがIS Doing SOMETHING NASTY!誰かがあなたを盗聴している可能性がある(man-in -中間攻撃)!また、RSAホストキーが変更された可能性がありますリモートホストによって送信されたRSAキーのフィンガープリントは、ab:cd:ef:ghシステム管理者に連絡してください/home/user/.ssh/known_hostsに正しいホストキーを追加して削除しますこのメッセージ。/home/user/.ssh/known_hosts:1の攻撃キーuserのRSAホストキー。 serverが変更され、厳密なチェックを要求しました。ホストキーの検証に失敗しました。
ssh-keygen -R hostname
これにより、known_hosts
から問題のあるキーが削除されます
マニュアルページのエントリは次のとおりです。
-R hostname
known_hostsファイルからホスト名に属するすべてのキーを削除します。このオプションは、ハッシュされたホストを削除するのに役立ちます(上記の-Hオプションを参照)。
ほとんどの場合、リモートホストIPまたはip_aliasは〜/ .ssh/known_hostsファイルにありません。次のコマンドを使用して、ホスト名をknown_hostsファイルに追加できます。
$ssh-keyscan -H -t rsa ip_or_ipalias >> ~/.ssh/known_hosts
また、特定のipまたはipaliasがknow_hostsファイルにあるかどうかを確認する次のスクリプトを生成しました。
#!/bin/bash
#Jason Xiong: Dec 2013
# The ip or ipalias stored in known_hosts file is hashed and
# is not human readable.This script check if the supplied ip
# or ipalias exists in ~/.ssh/known_hosts file
if [[ $# != 2 ]]; then
echo "Usage: ./search_known_hosts -i ip_or_ipalias"
exit;
fi
ip_or_alias=$2;
known_Host_file=/home/user/.ssh/known_hosts
entry=1;
cat $known_Host_file | while read -r line;do
if [[ -z "$line" ]]; then
continue;
fi
hash_type=$(echo $line | sed -e 's/|/ /g'| awk '{print $1}');
key=$(echo $line | sed -e 's/|/ /g'| awk '{print $2}');
stored_value=$(echo $line | sed -e 's/|/ /g'| awk '{print $3}');
hex_key=$(echo $key | base64 -d | xxd -p);
if [[ $hash_type = 1 ]]; then
gen_value=$(echo -n $ip_or_alias | openssl sha1 -mac HMAC \
-macopt hexkey:$hex_key | cut -c 10-49 | xxd -r -p | base64);
if [[ $gen_value = $stored_value ]]; then
echo $gen_value;
echo "Found match in known_hosts file : entry#"$entry" !!!!"
fi
else
echo "unknown hash_type"
fi
entry=$((entry + 1));
done
ステップ1:$ Bhargava.ssh#
ssh-keygen -R 199.95.30.220
step2:$ Bhargava.ssh#
ssh-copy-id [email protected]
Enter the the password.........
ステップ3:Bhargava .ssh#
Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-68-generic x86_64) * Documentation: https://help.ubuntu.com/ Ubuntu 14.04.3 LTS server : 228839 ip : 199.95.30.220 hostname : qt.example.com System information as of Thu Mar 24 02:13:43 EDT 2016 System load: 0.67 Processes: 321 Usage of /home: 5.1% of 497.80GB Users logged in: 0 Memory usage: 53% IP address for eth0: 199.95.30.220 Swap usage: 16% IP address for docker0: 172.17.0.1 Graph this data and manage this system at: https://landscape.canonical.com/ Last login: Wed Mar 23 02:07:29 2016 from 103.200.41.50
hostname @ qt:〜$
sureサーバーが正しい場合、sed -i 1d ~/.ssh/known_hosts
はローカル~/.ssh/known_hosts
の1行目を削除します。次回接続すると、新しい正しいキーがファイルに追加されます。
また、シリアルコンソールで作業しているときに、冗長モードで上記のコマンドを確認するときに-v
は、/ dev/ttyは存在するが存在しないことを示します。
上記の場合、/ dev/ttyを削除して、/ dev/ttyS0から/ dev/ttyへのシンボリックリンクを作成するだけです。
まず、既存のキーを削除する必要があります。ほとんどのLinuxベースのOSのSSHキーはこのファイル「/root/.ssh/known_hosts」に保存されるため、ホストに関連するキーを削除するには、次のコマンドを使用します。
ssh-keygen -f "/root/.ssh/known_hosts" -R [Hostname]
よろしくK1
rm -f /home/user/.ssh/known_hosts
または、それを開いて、問題のあるip/hostnameのエントリを削除します
(追記:投稿したエラーメッセージでこれを正確に示しています)
リモートホストキーが変更されたことを意味します(ホストパスワードの変更の可能性があります)。
端末は、このコマンドをrootユーザーとして実行することを提案しました
$ ssh-keygen -f "/root/.ssh/known_hosts" -R [www.website.net]:4231
そのホスト名を、PC /サーバーのホストリストから削除する必要があります。その推奨コマンドをコピーして、rootユーザーとして実行します。
$ Sudo su // Login as a root user
$ ssh-keygen -f "/root/.ssh/known_hosts" -R [www.website.net]:4231 // Terminal suggested command execute here
Host [www.website.net]:4231 found: line 16 type ECDSA
/root/.ssh/known_hosts updated.
Original contents retained as /root/.ssh/known_hosts.old
$ exit // Exist from root user
$ Sudo ssh [email protected] -p 4231 // Try again
これがうまくいくことを願っています。