ฉันโคลนเซิร์ฟเวอร์ดังนั้นพวกเขาจึงมีคีย์ลายนิ้วมือ RSA เดียวกัน
/etc/ssh/ssh_host_rsa_key.pub
มันน่าจะเป็นที่กำหนดไว้ใน
วิธีที่ถูกต้องในการเปลี่ยนแปลงนั้นคืออะไร?
ขอบคุณ
ฉันโคลนเซิร์ฟเวอร์ดังนั้นพวกเขาจึงมีคีย์ลายนิ้วมือ RSA เดียวกัน
/etc/ssh/ssh_host_rsa_key.pub
มันน่าจะเป็นที่กำหนดไว้ใน
วิธีที่ถูกต้องในการเปลี่ยนแปลงนั้นคืออะไร?
ขอบคุณ
คำตอบ:
หรือลบคีย์และ
ssh-keygen -A
คำอธิบาย:
-A
: สำหรับแต่ละประเภทคีย์ (rsa1, rsa, dsa, ecdsa และ ed25519) ที่ไม่มีคีย์โฮสต์ให้สร้างโฮสต์คีย์ด้วยพา ธ ไฟล์คีย์เริ่มต้นวลีรหัสผ่านว่างเปล่าบิตเริ่มต้นสำหรับประเภทคีย์และค่าเริ่มต้น คิดเห็น สิ่งนี้ถูกใช้โดย / etc / rc เพื่อสร้างคีย์โฮสต์ใหม่
ssh-keygen -A
ทำสิ่งต่อไปนี้: "สำหรับประเภทคีย์แต่ละประเภท (rsa1, rsa, dsa, ecsa และ ed25519) ซึ่งไม่มีโฮสต์โฮสต์ให้สร้างโฮสต์ คีย์ที่มีพา ธ ของไฟล์คีย์เริ่มต้นวลีรหัสผ่านว่างบิตเริ่มต้นสำหรับประเภทคีย์และความคิดเห็นเริ่มต้นนี่คือสิ่งที่ / etc / rc ใช้เพื่อสร้างคีย์โฮสต์ใหม่ "
ทำตามขั้นตอนเหล่านี้เพื่อสร้างคีย์โฮสต์ OpenSSH อีกครั้ง
rm /etc/ssh/ssh_host_*
dpkg-reconfigure openssh-server
~/.ssh/known_hosts
ไฟล์ไคลเอ็นต์ ssh ทั้งหมดสำหรับวิธีทั่วไปในการทำสิ่งนี้:
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
ผสมและจับคู่ตามคีย์ที่ OpenSSH เวอร์ชั่นที่คุณรองรับรองรับ
ssh-keygen -q -N "" -t rsa -b 4096 -f /etc/ssh/ssh_host_rsa_key
ลบออกและเริ่มบริการ SSHd ใหม่ พวกเขาจะถูกสร้างใหม่
/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
สคริปต์ (ในกรณีที่รีสตาร์ท sshd daemon จะไม่สร้างคีย์ใหม่โดยอัตโนมัติ)
#!/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