ฉันต้องการตั้งค่า ssh tunnel ไปยังเซิร์ฟเวอร์ mysql ซึ่งอยู่ในคอมพิวเตอร์ที่มีเครื่องเสมือน อุโมงค์จะต้องทำงานหากเครื่องเริ่มต้นใหม่
สมมุติว่า A คือคอมพิวเตอร์ที่มีซอฟต์แวร์ linux B - เครื่องเสมือนในคอมพิวเตอร์ A.
MySQL อยู่ใน B
C - เป็นเครื่องเสมือนจริงในคอมพิวเตอร์ A ซึ่งต้องการเชื่อมต่อกับ MySQL ใน B
ตอนนี้โดยบทความนี้: http://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id/
ฉันพยายามคัดลอกกุญแจสาธารณะไปยังเซิร์ฟเวอร์ระยะไกล ฉันเดาว่าฉันต้องคัดลอกไปยังคอมพิวเตอร์ A
ssh-copy-id -i id_rsa.pub.bak [user]@[IP of A] -p [port of A]
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).
ตอนนี้ฉันพยายามป้อนข้อความรหัสผ่านของไฟล์ id_rsa.pub.bak มันปฏิเสธ
จากนั้นฉันเห็นว่ามันใช้รหัสใน /home/ [ชื่อผู้ใช้] /.ssh/id_rsa ซึ่งแตกต่างจากรหัสสาธารณะที่ฉันพยายามคัดลอกฉันหมายถึงแน่นอนว่ารหัสส่วนตัวนั้นแตกต่างกัน แต่ฉันหมายถึงฉันคัดลอกกุญแจสาธารณะของอีกใบ รหัสส่วนตัว ดังนั้นฉันจึงลองใช้ข้อความรหัสผ่านของมัน ยังปฏิเสธ
ฉันจะดีบักทำไมข้อความรหัสผ่านถูกปฏิเสธได้อย่างไร
ปรับปรุง
จากความคิดเห็นฉันสร้างไฟล์สาธารณะใหม่ชื่อ id_rsa.pub ซึ่งทุกอย่างอยู่ในบรรทัดเดียวเดี๋ยวนี้
และเรียกใช้และยังคงได้รับข้อผิดพลาด
ssh-copy-id -i id_rsa.pub [host and port] -vvv
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).
ปรับปรุง
ตรวจสอบการอนุญาตในโฟลเดอร์. ssh และไฟล์ authorized_keys ในคอมพิวเตอร์ A ซึ่งเป็น 700 และ 600 ดังนั้นตามความคิดเห็นที่บอกว่าดี
ปรับปรุง
พยายามตั้งค่าการรับรองความถูกต้องรหัสผ่านใช่ในคอมพิวเตอร์และเริ่มบริการใหม่ การรีสตาร์ทโดยคำตอบใช้งานไม่ได้เขียนว่าไม่รู้จัก sshd ดังนั้นฉันจึงรีสตาร์ทโดยใช้:
sudo /etc/init.d/ssh restart
จากนั้นลองอีกครั้งในเครื่อง C เพื่อคัดลอกไปยังเครื่อง A
ssh-copy-id -i id_rsa.pub [user@host] -p [port] -v
และยังคงเหมือนเดิม:
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).
หากฉันไปคัดลอกคีย์ด้วยตนเองไปที่ authorized_keys ฉันจะเห็นว่ารหัสสาธารณะนั้นมีอยู่แล้วเหมือนกันกับที่ฉันต้องการคัดลอก ฉันถามเพื่อนร่วมงานของฉันเขาบอกว่าเขาไม่ได้คัดลอก ดังนั้นฉันจึงไม่เข้าใจว่ามันจะอยู่ที่นั่นได้อย่างไร
ตกลงถ้าอยู่ตรงนั้นจะดี แต่ถ้าอยู่ตรงนั้นจะไม่ให้ฉันเชื่อมต่อกับ ssh โดยไม่ต้องป้อนข้อความรหัสผ่าน แต่ฉันสามารถเชื่อมต่อกับการป้อนข้อความรหัสผ่านได้ ดังนั้นสิ่งที่ชัดเจนยังคงผิดที่นี่ และกุญแจที่ฉันพยายามจะทำสำเนานั้นก็คือข้อความรหัสผ่านที่ว่างเปล่า เมื่อฉันเชื่อมต่อกับ ssh - ฉันป้อนวลีรหัสผ่านที่ไม่ว่างเปล่า
รหัสสาธารณะเดียวกันไม่สามารถรับข้อความรหัสผ่านที่ว่างเปล่าและไม่ผ่านข้อความรหัสผ่านที่ว่างเปล่าได้ แต่ทำไมรหัสสาธารณะที่ฉันพยายามอัปโหลดนั้นเหมือนกันกับรหัสในไฟล์ authorized_keys หากข้อความรหัสผ่านแตกต่างกัน ฉันไม่ได้ตรวจสอบตัวละครทุกตัว แต่มันไม่น่าเป็นไปได้ที่ปุ่มจะคล้ายกันมากจนการเริ่มต้นและจบจะเหมือนกันแม้ว่าฉันจะคิดวลีรหัสผ่านที่แตกต่างกันก็ตาม
id_rsa
คุณมีไฟล์ใดบ้างที่เริ่มต้นด้วย ผมจะคาดหวังที่จะล้มเหลวด้วยข้อผิดพลาดในแบบที่คุณเรียกมันว่าเป็นมันคาดว่าไฟล์ที่ลงท้ายด้วยssh-copy-id
.pub
เป็นของคุณปลายด้วยก็อาจจะใช้.bak
id_rsa.pub.bak.pub