Saya mengkloning server dan mereka memiliki sidik jari kunci RSA yang sama.
Tampaknya didefinisikan dalam /etc/ssh/ssh_host_rsa_key.pub
.
Apa cara yang benar untuk mengubahnya?
Terima kasih.
Saya mengkloning server dan mereka memiliki sidik jari kunci RSA yang sama.
Tampaknya didefinisikan dalam /etc/ssh/ssh_host_rsa_key.pub
.
Apa cara yang benar untuk mengubahnya?
Terima kasih.
Jawaban:
Atau, hapus kunci dan
ssh-keygen -A
Penjelasan:
-A
: Untuk masing-masing jenis kunci (rsa1, rsa, dsa, ecdsa dan ed25519) yang tidak memiliki kunci host, buat kunci host dengan jalur file kunci default, frasa sandi kosong, bit default untuk jenis kunci, dan default komentar. Ini digunakan oleh / etc / rc untuk menghasilkan kunci host baru.
ssh-keygen -A
lakukan hal berikut: "Untuk masing-masing jenis kunci (rsa1, rsa, dsa, ecdsa dan ed25519) yang tidak memiliki kunci host, hasilkan host kunci dengan path file kunci default, frasa sandi kosong, bit default untuk jenis kunci, dan komentar default. Ini digunakan oleh / etc / rc untuk menghasilkan kunci host baru. "
Ikuti langkah-langkah ini untuk membuat ulang Kunci Host OpenSSH
rm /etc/ssh/ssh_host_*
dpkg-reconfigure openssh-server
~/.ssh/known_hosts
file klien sshUntuk metode umum dalam melakukan ini:
ssh-keygen -q -N "" -t dsa -f /etc/ssh/ssh_host_dsa_key
ssh-keygen -q -N "" -t rsa -b 4096 -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -q -N "" -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
campur dan cocokkan dengan tombol yang didukung versi OpenSSH Anda.
ssh-keygen -q -N "" -t rsa -b 4096 -f /etc/ssh/ssh_host_rsa_key
Hapus dan restart layanan SSHd. Mereka akan dilahirkan kembali.
/etc/init.d/ssh restart<newline> Could not load host key: /etc/ssh/ssh_host_rsa_key<newline> Could not load host key: /etc/ssh/ssh_host_dsa_key<newline> [....] Restarting OpenBSD Secure Shell server: sshdCould not load host key: /etc/ssh/ssh_host_rsa_key<newline> Could not load host key: /etc/ssh/ssh_host_dsa_key
Script (jika me-restart daemon sshd tidak secara otomatis membuat ulang kunci)
#!/bin/bash
# Regenerate SSHD key materials, restart sshd if "-r" passed on command line
set -o nounset
WHERE=/etc/ssh
# go to directory
pushd $WHERE >/dev/null
if [[ $? != 0 ]]; then
echo "Could not cd to $WHERE -- exiting" >&2
exit 1
fi
# create backup folder
NOW=`date '+%Y%m%d.%H%M%S'` # default NOW string
BAKDIR=bak_$NOW
mkdir $BAKDIR
if [[ $? != 0 ]]; then
echo "Could not mkdir $BAKDIR -- exiting" >&2
exit 1
fi
# move existing key material to backup folder
mv ssh_host_* $BAKDIR
if [[ $? != 0 ]]; then
echo "Could not move old files to $BAKDIR -- exiting" >&2
exit 1
fi
# generate new keys
ssh-keygen -A
if [[ $? != 0 ]]; then
echo "Could not recreate keys -- exiting" >&2
exit 1
fi
# ssh-keygen may create DSA keys but:
# "Never use DSA or ECDSA"
# http://security.stackexchange.com/questions/5096/rsa-vs-dsa-for-ssh-authentication-keys
/bin/rm -f *_dsa_key *_dsa_key.pub
/bin/rm -f *_ecdsa_key *_ecdsa_key.pub
# on Fedora, one has to tune permissions a bit
chmod 640 *_key
chgrp ssh_keys *_key
# make sure SELinux attributes are as they should be
restorecon -R $WHERE
# Done
echo "New key material"
ls -l *_key *_key.pub
# Do the risky thing
if [[ $1 == '-r' ]]; then
echo "Restarting SSH daemon"
systemctl restart sshd
fi
# go back to where you where
popd >/dev/null