ฉันทำสิ่งต่าง ๆ มากมายระหว่างคอมพิวเตอร์ LAN ของฉันและบัญชีเว็บโฮสติ้งสองบัญชีของฉันดังนั้นฉันจึงแยกแยะอัตราต่อรองและจบลงด้วย SSH รวมถึงปัญหาการตรวจสอบสิทธิ์ssh -v
เพื่อดูว่าเกิดอะไรขึ้นและผิดพลาด
เมื่อได้แก้ไขปัญหานี้แล้วและไม่พอใจกับคำตอบฉันต้องการรู้ว่า "ทำไม" ตัวฉันเอง ...
ทริกเกอร์สำหรับกรณีของฉันคือ: ติดตั้งระบบปฏิบัติการเซิร์ฟเวอร์ใหม่ในที่ทำงานและเมื่อติดตั้งแพ็คเกจ openssh-server จะมีการสร้างชุดคีย์โฮสต์ใหม่บนเซิร์ฟเวอร์ของงาน ก่อนหน้านี้ระบบปฏิบัติการเซิร์ฟเวอร์ของฉันทั้งหมดเป็น Ubuntu และคราวนี้เปลี่ยนเป็น Debian (และฉันสงสัยว่ามีการอนุญาตที่แตกต่างกัน)
เมื่อทุกระบบปฏิบัติการเป็น Ubuntu และฉันติดตั้งระบบปฏิบัติการของเซิร์ฟเวอร์ใหม่โดยใช้ SSH ตัวแรกฉันได้รับคำเตือนแบบนี้ซึ่งฉันชอบคำเตือนแบบเงียบ ๆ ข้างต้น!
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
06:ea:f1:f8:db:75:5c:0c:af:15:d7:99:2d:ef:08:2a.
Please contact your system administrator.
Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.
Offending key in /home/user/.ssh/known_hosts:4
RSA host key for domain.com has changed and you have requested strict checking.
Host key verification failed.
จากนั้นฉันก็เปิด~/.ssh/known_hostsคอมพิวเตอร์ที่เริ่มต้น ssh ลบบรรทัดนั้นเชื่อมต่อใหม่และสิ่งนี้เกิดขึ้น:
chris@home ~ $ ssh work
The authenticity of host '[work]:11122 ([99.85.243.208]:11122)' can't be established.
ECDSA key fingerprint is 56:6d:13:be:fe:a0:29:ca:53:da:23:d6:1d:36:dd:c5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[work]:11122 ([99.85.243.208]:11122)' (ECDSA) to the list of known hosts.
Linux rock 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64
บิตนั้นเกี่ยวกับ: 11122 คือหมายเลขพอร์ตที่ฉันกำหนดเส้นทาง SSH จากบนไฟร์วอลล์
ฉันตรวจสอบข้อมูลสำรองจากเซิร์ฟเวอร์ Ubuntu เดิมและไม่เห็นด้วยกับการติดตั้ง Debian ใหม่ของฉัน:
Ubuntu: Debian:
# Package generated configuration file # Package generated configuration file
# See the sshd(8) manpage for details # See the sshd_config(5) manpage for details
# What ports, IPs and protocols we listen for # What ports, IPs and protocols we listen for
Port 22 Port 22
# Use these options to restrict which interface # Use these options to restrict which interfaces
#ListenAddress :: #ListenAddress ::
#ListenAddress 0.0.0.0 #ListenAddress 0.0.0.0
Protocol 2 Protocol 2
# HostKeys for protocol version 2 # HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key HostKey /etc/ssh/ssh_host_dsa_key
------------------------------------------------ HostKey /etc/ssh/ssh_host_ecdsa_key
#Privilege Separation is turned on for security #Privilege Separation is turned on for security
UsePrivilegeSeparation yes UsePrivilegeSeparation yes
ดังนั้นใช่น่าจะเป็นโฮสต์เริ่มใช้คีย์ ecdsa เมื่อเร็ว ๆ นี้ซึ่งตามการเปลี่ยนแปลงของ Ubuntu เมื่อเร็ว ๆ นี้ฉันจะโทษการปรับปรุง Ubuntu ออกห่างจากระบบปฏิบัติการลินุกซ์ที่แข็งกร้าวซึ่งเป็นเหตุผลว่าทำไมฉันจึงติดตั้ง Debian ในเวลานี้
ฉันอ่านระบบรักษาความปลอดภัย SE q / a บน ecdsaและลบบรรทัดนั้นออกจากsshd_config
เซิร์ฟเวอร์ Debian ใหม่ของฉันแล้ว (และวิ่งservice ssh restart
)
The ECDSA host key for server has changed
ผูกกับโดเมนแล้ว~/.ssh/known_hosts
วิธีของฉันคือเอาสตริงแคชที่เกี่ยวข้องเกี่ยวกับประสิทธิภาพในการ จากนั้น ssh ใช้งานได้