สีโป๊ว: การรับเซิร์ฟเวอร์ปฏิเสธข้อผิดพลาดที่สำคัญของเรา


86

ฉันสร้างคู่คีย์โดยใช้puttygen.exe(ไคลเอนต์คือ windows 8) บนเซิร์ฟเวอร์ (Ubuntu 12.04.3 LTS) ฉันใส่คีย์สาธารณะของฉันไว้ใน~/.ssh/authorized_keys. คีย์สาธารณะคือ:

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAopfM6RHOgnuc4Aftn3t4k5UIAT3StCAbn/vg/IMbphbXadshC+79sIlRq3P4zGzMjFTP4hKnzu6ehLV5lmj/qorq3SKT+bPO5Qrac3VbIlrGvuBFDDjP82I2Hwg3HzlsFTstqk++KToapaTYZ7jENEYyPl2wnzITJnt//+4U1o6juoXTKgdNE02hHnRZyHOV/bnkZyJJCEwJv5U0eXSThQnhmXtUxGT8U0HQNFiXfqIIVllhWiCnyrhhIaKz/CIJNAd2VmzyJzQtJtTQX8aWSNVrZju6Sv2/RncTNvsACdNgjjh/FH8PQXaep00jlJ3MOdsC8vz6VSPFbh6iKy1oLQ== rsa-key-20131231

ถูกต้อง (หนึ่งบรรทัดไม่มีความคิดเห็นขึ้นต้นด้วย ssh-rsa เป็นต้น)

.ssh ระดับสิทธิ์ dir คือ 700 สิทธิ์ไฟล์ที่ได้รับอนุญาตคือ 600 ทั้งไดเร็กทอรีและไฟล์ที่เป็นของผู้ใช้จริงที่ฉันพยายามเข้าสู่ระบบ

เมื่อฉันพยายามเชื่อมต่อฉันได้รับ'server refused our key'และเซิร์ฟเวอร์ขอรหัสผ่าน นั่นคือทั้งหมด ไม่มีสิ่งใดถูกบันทึก/var/log/auth.logเมื่อพยายามเข้าสู่ระบบด้วยคีย์

ฉันดูทุกที่และบทความและเคล็ดลับทั้งหมดกล่าวถึงการตั้งค่า chmod 600 และ 700 สำหรับไฟล์ / ไดเร็กทอรีและจัดรูปแบบคีย์อย่างถูกต้อง ฉันทำทั้งหมดนี้แล้ว แต่ยังได้รับข้อผิดพลาด 'ปฏิเสธรหัสของเรา' และฉันไม่คิดอะไร


2
คุณบอกให้ Putty ใช้คีย์เดียวกันหรือไม่? คุณเข้าสู่ระบบด้วยผู้ใช้คนเดียวกันหรือไม่ นี่เป็นการติดตั้ง SSH เริ่มต้นหรือคุณแก้ไข sshd_config?
Noam Rathaus

Puttygen สร้าง 3 คีย์: ส่วนตัวสาธารณะและเป็นคีย์ส่วนตัวในเวอร์ชันของตัวเองที่มีนามสกุล. ppk แน่นอนว่าฉันใช้. ppt กับ putty.exe และวางคีย์สาธารณะลงใน. ssh / Authorized_keys บนเซิร์ฟเวอร์ เป็นการติดตั้ง / กำหนดค่า SSH เริ่มต้นฉันไม่ได้แก้ไข sshd_config
PawelRoman

BTW ฉันต้องสร้างไดเร็กทอรี. ssh และ auhtorized_keys เนื่องจากเป็นการติดตั้ง Ubuntu ใหม่และไม่ได้อยู่ที่นั่น อาจมีบางอย่างเกี่ยวข้องกับปัญหานี้หรือไม่
PawelRoman

3
ตรวจสอบให้แน่ใจว่า sshd_config ได้รับการกำหนดค่าให้ใช้กุญแจสาธารณะอาจไม่ใช่
Noam Rathaus

2
คุณเห็นอะไรใน /var/log/auth.log ไหม เพิ่ม LogLevel ของบันทึก SSH DEBUGและดูว่าคุณสามารถเห็นปัญหาใด ๆ ที่บันทึกไว้หรือไม่หากยังไม่แสดงว่าคุณกำลังเข้าถึงคุณกำลังค้นหาไฟล์บันทึกที่ไม่ถูกต้อง
Noam Rathaus

คำตอบ:


61

ตกลงมีการพิมพ์ผิดเล็กน้อยในคีย์ของฉัน เห็นได้ชัดว่าเมื่อวางไฟล์ตัวอักษรตัวแรกถูกตัดออกและเริ่มต้นด้วย sh-rsa แทน ssh-rsa

nrathathaus - คำตอบของคุณมีประโยชน์มากขอบคุณมากคำตอบนี้ให้เครดิตกับคุณ :) ฉันทำเหมือนที่คุณพูดและตั้งค่านี้ใน sshd_conf:

LogLevel DEBUG3

จากการดูบันทึกฉันรู้ว่า sshd อ่านคีย์อย่างถูกต้อง แต่ปฏิเสธเนื่องจากตัวระบุไม่ถูกต้อง


บันทึกใดที่คุณตรวจสอบและบันทึกอยู่ที่ไหน ตัวระบุคืออะไรคุณกำลังพูดถึง?
user1046647

3
@ user1046647 LogLevelถูกกำหนดไว้ใน/etc/ssh/sshd_config. บันทึกการเริ่มต้นคือเว้นแต่กำหนดไว้เป็นอย่างอื่นใน/var/log/auth.log sshd_config
Axel Kemper

ต้องมีบางอย่างกับตัวสร้างคีย์เพราะฉันมีปัญหาเดียวกันแน่นอน!
Kevin

3
หากคุณเปิด Author_key ในกลุ่มและพยายามวาง 's' ตัวแรกทันทีจาก "ssh_rsa" จะถือว่าเป็นคำสั่ง vim หลังจากนั้น vim จะเปลี่ยนเป็นโหมดแทรกและข้อความที่เหลือจะถูกวางหากคุณเข้าสู่โหมดแทรกก่อน การวาง (เช่นการใช้i) จะไม่ตัด "นำหน้า"
Pawel

1
! sudo service ssh restartเพื่อให้การเปลี่ยนแปลงมีผล มิฉะนั้นจะไม่มีอะไรอยู่ในล็อกไฟล์รับรองความถูกต้องของฉัน
hogan

30

การเพิ่มความคิดเล็กน้อยเนื่องจากคำตอบอื่น ๆ ช่วยได้ แต่ก็ไม่เหมาะสม

ก่อนอื่นตามที่กล่าวไว้ในคำตอบที่ยอมรับแก้ไข

/etc/ssh/sshd_config

และตั้งค่าระดับการบันทึก:

LogLevel DEBUG3

จากนั้นลองตรวจสอบสิทธิ์และเมื่อล้มเหลวให้มองหาไฟล์บันทึก:

/var/log/secure

มันจะมีข้อผิดพลาดที่คุณกำลังมองหา


/var/log/มีอยู่ แต่secureไม่มีอยู่จริง ฉันจะทราบได้อย่างไรว่ากำลังเขียนบันทึกใดอยู่
aliteralmind

11
ค่าเริ่มต้นคือ/var/log/auth.logอย่างน้อยใน Ubuntu 14.04.1 ของฉัน
Axel Kemper

ใช่! ขอขอบคุณ! ปรากฎว่าไฟล์คีย์ผับของฉันมองไม่เห็น \ n ในตอนท้าย
alextsil

1
Linux / Ubuntu น่าผิดหวังมาก ใช้เวลา 20 นาทีเพื่อหาสาเหตุที่ไม่มีsecureไฟล์ก่อนอ่านความคิดเห็นของ @axel ที่นี่
JYelton

17

ในกรณีของฉันฉันต้องเปลี่ยนสิทธิ์ของ / home / user จาก 0755 เป็น 0700 เช่นกัน


1
นี่คือสาเหตุและวิธีแก้ปัญหาสำหรับฉัน
pstanton

4
และสำหรับตัวฉันเองโฟลเดอร์ 700 และ Authorized_keys 600 แก้ปัญหาได้
David Soussan

1
สำหรับฉันเหมือนกัน chmod 700 ในโฟลเดอร์. ssh และ chmod 600 บน Authorized_keys แก้ไขปัญหาได้
Iwo Kucharski

.ssh โฟลเดอร์ 700 และคีย์ที่ได้รับอนุญาต 600 แก้ไขให้ฉัน
Deep-B

13

ในกรณีของฉันเป็นปัญหาการอนุญาต

ฉันเปลี่ยนระดับการบันทึกเป็นDEBUG3และใน/var/log/secureฉันเห็นบรรทัดนี้:

Authentication refused: bad ownership or modes for directory

Googled และฉันพบโพสต์นี้:

https://www.daveperrett.com/articles/2010/09/14/ssh-authentication-refused/

chmod g-w /home/your_user
chmod 700 /home/your_user/.ssh
chmod 600 /home/your_user/.ssh/authorized_keys

โดยทั่วไปจะบอกให้ฉัน:

  • กำจัดการwอนุญาตกลุ่มของผบ. บ้านผู้ใช้ของคุณ
  • เปลี่ยนการอนุญาตเป็น700ของ.sshผบ
  • เปลี่ยนสิทธิ์เป็น600ของauthorized_keysไฟล์

และได้ผล

อีกอย่างคือแม้ฉันจะเปิดใช้งานการเข้าสู่ระบบรูทฉันก็ไม่สามารถrootทำงานได้ ใช้ผู้ใช้อื่นดีกว่า


คำตอบนี้ไม่ได้รับการโหวต สิทธิ์ที่ถูกมองข้ามของโฮมไดเร็กทอรีอาจทำให้คุณต้องเสียเวลาทั้งวันในการแก้ไขปัญหา
chingNotCHing

ขอบคุณที่โหวตให้ฉัน ฉันแค่แบ่งปันสิ่งที่ฉันได้รับ
WesternGun

6

ใช้ Windows 8.1 ฉันพบในไฟล์ server refused our keyปัญหา

ทำตามคำแนะนำ: https://winscp.net/eng/docs/guide_windows_openssh_server การเชื่อมต่อทำได้ง่ายโดยใช้การเข้าสู่ระบบ Windows usernameและpassword. อย่างไรก็ตามการพิสูจน์ตัวตนโดยใช้usernameร่วมกับ a private keyการตอบสนองคือserver refused our keyการตอบสนองได้

การทำให้มันทำงานกับคีย์สาธารณะลงมาถึงสิทธิ์ในไฟล์: C:\ProgramData\ssh\administrators_authorized_keys

หน้านี้เป็นประโยชน์: https://github.com/PowerShell/Win32-OpenSSH/wiki/Troubleshooting-Steps

หยุดบริการ OpenSSH สองบริการจากนั้นเปิดcommand promptด้วยadmin permissions . จากนั้นเรียกใช้: C:\OpenSSH-Win32>c:\OpenSSH-Win32\sshd.exe -ddd

หมายเหตุ: ระบุเส้นทางแบบเต็มไปยัง exe มิฉะนั้นจะsshdบ่น สิ่งนี้จะสร้างตัวรับฟังการเชื่อมต่อแบบใช้ครั้งเดียว -dddเป็น verbose ระดับ 3

หลังจากทำการเชื่อมต่อการสแกนบันทึกเปิดเผย:

debug1: trying public key file __PROGRAMDATA__/ssh/administrators_authorized_keys
debug3: Failed to open file:C:/ProgramData/ssh/administrators_authorized_keys error:2
debug1: Could not open authorized keys '__PROGRAMDATA__/ssh/administrators_authorized_keys':
        No such file or directory

ต้องสร้างไฟล์: C:\ProgramData\ssh\administrators_authorized_keys และคัดลอกpublic keyข้อความลงในไฟล์เช่น: ssh-rsa AAAA................MmpfXUCj rsa-key-20190505 จากนั้นบันทึกไฟล์ ฉันบันทึกไฟล์เช่นเดียวUTF-8กับไฟล์BOM. ไม่ได้ทดสอบANSIไม่ได้ทดสอบ

จากนั้นเรียกใช้บรรทัดคำสั่งแบบครั้งเดียวอีกครั้งในบันทึกแสดง:

debug1: trying public key file __PROGRAMDATA__/ssh/administrators_authorized_keys
debug3: Bad permissions. Try removing permissions for user: S-1-5-11 on file C:/ProgramData/ssh/administrators_authorized_keys.
        Authentication refused.

S-1-5-11เป็นชื่อที่กำหนดให้กับไฟล์System.

ในการแก้ไขให้Bad permissionsคลิกขวาที่administrators_authorized_keysไฟล์จากSecurity Tabนั้นไปที่คลิกAdvancedปุ่มและลบสิทธิ์ที่สืบทอดมา แล้วลบทั้งหมดGroup or user names:ยกเว้นสำหรับชื่อผู้ใช้เข้าสู่ระบบของ Windows เช่น: YourMachineName\username สิทธิ์ที่usernameควรจะเป็นRead Allow,Write Denyทุกอย่างอื่นจะไม่ถูกตรวจสอบ เจ้าของไฟล์ควรเป็นเช่นกันYourMachineName\username

สิ่งนี้ช่วยแก้ปัญหาได้

ลิงค์ที่เป็นประโยชน์อื่น ๆ :

ดาวน์โหลด OpenSSH-Win32.zip จาก: https://github.com/PowerShell/Win32-OpenSSH/releases

ตัวอย่าง C # ของวิธีใช้ WinSCPnet.dll เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ OpenSSH: https://winscp.net/eng/docs/library#csharp

นี่คือข้อมูลโค้ดเพื่อทำการเชื่อมต่อโดยใช้WinSCPnet.dll:

static void WinSCPTest() {
    SessionOptions ops = new SessionOptions {
        Protocol = Protocol.Sftp, 
        PortNumber = 22,
        HostName = "192.168.1.188", 
        UserName = "user123",
        //Password = "Password1",
        SshHostKeyFingerprint = @"ssh-rsa 2048 qu0f........................ddowUUXA="
    };

    ops.SshPrivateKeyPath = @"C:\temp\rsa-key-20190505.ppk";

    using (Session session = new Session()) {
        session.Open(ops);
        MessageBox.Show("success");
    }
}

แทนที่SshHostKeyFingerprintและSshPrivateKeyPathด้วยคุณค่าของคุณเอง

แก้ไข: เพิ่มภาพหน้าจอของการอนุญาตไฟล์ administrator_authorized_keys: ป้อนคำอธิบายภาพที่นี่

เมื่อOpenSSH SSH Serverใดที่ทำงานเป็นบริการSystemควรได้รับอนุญาตเท่านั้น อย่างไรก็ตามหากเรียกใช้sshd.exeจากพรอมต์คำสั่งผู้ใช้ปัจจุบันควรเป็นผู้เดียวในรายการ (อ่านอนุญาตเขียนปฏิเสธ)


3
คุณได้ทำหลายสิ่งหลายอย่างที่นี่ซึ่งช่วยได้ ครั้งแรกที่รัน sshd ด้วยแฟล็กการดีบักบนบรรทัดคำสั่ง บันทึกของ Windows Service System มีน้อยมากและไม่มีประโยชน์เลยในการดีบัก ประการที่สองความจริงหลักที่ว่าในฐานะผู้ดูแลระบบมีข้อผิดพลาดที่ดูเฉพาะในไฟล์ administrator_authorized_keys และไม่ใช่โฟลเดอร์ Users .ssh ที่คาดไว้สำหรับ Authorized_keys (จุดที่ทุกคนกำลังเศร้าในการรัน sshd บน Windows) ในที่สุดโฟลเดอร์ 'ssh' ใน ProgramData! ฉันสงสัยว่ามันวางใบรับรองเซิร์ฟเวอร์ไว้ที่ไหนเป็นต้นดังนั้นมีเพียงข้อมูลของคุณที่นี่เท่านั้นที่ช่วยฉันได้หลังจากเกาหัวมาแล้วหนึ่งวัน ขอบคุณ!
Master James

คำตอบนี้เป็นคำตอบเดียวที่ใช้ได้กับฉันในอินสแตนซ์ ec2 ใหม่ windows 2019 ฟรีเทียร์
yolob 21

3

ฉันกำลังเพิ่มคำตอบนี้เพื่อช่วยทุกคนเช่นฉันที่ใช้เวลาหลายชั่วโมงในการกำจัดสิ่งสกปรกบนอินเทอร์เน็ตโดยไม่ประสบความสำเร็จ

โฟลเดอร์ที่บ้านของคุณอาจถูกเข้ารหัส

หรือในกรณีที่โฟลเดอร์ใดก็ตามที่มีไฟล์ "Author_keys" ของคุณซ้อนอยู่ ผู้ชายนั่นจะช่วยให้ฉันประหยัดเวลาได้มาก ในการตรวจสอบให้ไปดำเนินการ

ls -A

บนไดเร็กทอรีที่มีสถานะการเข้ารหัสที่คุณต้องการกำหนด หากโฟลเดอร์นั้นมีโฟลเดอร์ชื่อ ".encryptfs" คำตอบคือใช่โฟลเดอร์นั้นถูกเข้ารหัส ซึ่งจะขัดขวางความสามารถของคุณในการเข้าถึงไฟล์ "Author_keys" ที่มีคีย์ ssh สาธารณะที่จำเป็นสำหรับการตรวจสอบ

ในการแก้ไขปัญหานี้ให้วางไฟล์ "คีย์ที่ได้รับอนุญาต" ไว้ในโครงสร้างไดเรกทอรีที่ไม่มีการเข้ารหัส


3

วิธีแก้ปัญหาง่ายๆที่ฉันพบคือย้ายauthorized_keysไฟล์ออกจากไดเร็กทอรี. ssh ที่ซ่อนอยู่และวางไว้ในไดเร็กทอรี ssh ของระบบ:

/etc/ssh/keys/authorized_keys

ทันทีที่ฉันทำสิ่งนี้ได้ผลโดยไม่มีปัญหา


3

มีปัญหาเดียวกันใน windows server 2008 r2 และมีการสำรวจมากมายเพื่อแก้ไขในที่สุดก็ทำตาม:

เปิด C: \ Program Files (x86) \ OpenSSH \ etc \ sshd_config ด้วย textpad หรือโปรแกรมแก้ไขข้อความอื่น ๆ

ลบความคิดเห็นออกจากบรรทัดต่อไปนี้หลังจากลบแล้วควรมีลักษณะดังนี้:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys

บันทึกและลองเข้าสู่ระบบด้วยคีย์ส่วนตัวทันที มีความสุข.


บางครั้งมีการติดตั้ง ssh โดยมีสายไฟล์ที่ได้รับอนุญาตที่แสดงความคิดเห็นดังนั้นจึงไม่ทราบว่าจะค้นหาไฟล์คีย์ที่ได้รับอนุญาตได้ที่ไหน :-(
kenyee

สิทธิ์ที่จำเป็นสำหรับไฟล์ Author_keys คืออะไร และต้องอยู่ในไดเร็กทอรีผู้ใช้หรือในไดเร็กทอรีของ OpenSSH?
GarfieldKlon

ควรอยู่ในไดเร็กทอรี OpenSSH หรือที่ที่คุณติดตั้ง OpenSSH คุณน่าจะหาได้
ราวีอานันท์

ตรวจสอบให้แน่ใจว่าคุณกำลังตั้งค่าโดยใช้บัญชีผู้ดูแลระบบ
ราวีอานันท์

2

ขอบคุณ nrathaus และ /var/log/auth.logการตรวจสอบในระดับดีบักมีดังต่อไปนี้

อีกสาเหตุหนึ่งคือโฮมไดเร็กทอรีของคุณอาจมีสิทธิ์ที่แตกต่างจาก 755


โฮมไดเร็กทอรีของคุณควรเป็น 700 ซึ่งเป็นค่าเริ่มต้นของ CentOS
karatedog

2

วันนี้ฉันพบปัญหานี้และปัญหาของฉันคือเมื่อคัดลอกคีย์สาธารณะจากไฟล์จะมีอักขระบรรทัดใหม่รวมอยู่ด้วย คุณสามารถใช้ ": set list" ในกลุ่มเพื่อดูบรรทัดใหม่ที่ซ่อนอยู่ทั้งหมดและอย่าลืมลบบรรทัดใหม่ทั้งหมดยกเว้นบรรทัดสุดท้าย นอกจากนี้คีย์ของฉันยังไม่มี "ssh-rsa" ในตอนแรก ตรวจสอบให้แน่ใจว่าคุณมีสิ่งนั้นเช่นกัน


1
คล้ายกันที่นี่: เมื่อคัดลอกจาก PuttyGen ฉันมีบรรทัดใหม่หลังจาก "ssh-rsa" และหลังคีย์ หลังจากถอดออกก็ใช้งานได้
Lucian P.

1

สำหรับผู้ที่ได้รับข้อผิดพลาดนี้จาก Windows Server ฉันได้รับข้อผิดพลาดเดียวกันนี้และเป็นปัญหาเกี่ยวกับบัญชีผู้ใช้ สำหรับหลายองค์กรนโยบายกลุ่มสำหรับผู้ดูแลระบบอาจไม่อนุญาตให้ตั้งค่าเซิร์ฟเวอร์ SSH และการเชื่อมต่อ ด้วยการตั้งค่าประเภทนั้นจะต้องดำเนินการจากบัญชี Local Admin อาจคุ้มค่าที่จะตรวจสอบหากคุณยืนยันว่าไม่มีการพิมพ์ผิดในคีย์สาธารณะ


1

ในกรณีของฉันฉันต้องปิดการใช้งาน SELinux บน Centos6.6 เพื่อให้มันใช้งานได้ :)

แก้ไข / etc / selinux / config และตั้งค่าต่อไปนี้จากนั้นรีบูตโฮสต์

selinux=disabled

BTW ... ลืมบอกไปว่าฉันต้องตั้งค่า LogLevel = DEBUG3 เพื่อระบุปัญหา


1
แทนที่จะปิดใช้งาน SELinux คุณสามารถเปลี่ยนบริบทความปลอดภัยในโฟลเดอร์. ssh chcon -R -t ssh_home_t .ssh
palehorse

1

ฉันมีข้อผิดพลาดเดียวกันกับ solaris แต่พบใน /var/adm/splunk-auth.log ต่อไปนี้:

sshd: [auth.debug] debug1: PAM conv function returns PAM_SUCCESS
sshd: [auth.notice] Excessive (3) login failures for weblogic: locking account.
sshd: [auth.debug] ldap pam_sm_authenticate(sshd-kbdint weblogic), flags = 1
sshd: [auth.info] Keyboard-interactive (PAM) userauth failed[9] while authenticating: Authentication failed

ใน / etc / shadow บัญชีถูกล็อค:

weblogic:*LK*UP:16447::::::3

ลบส่วน "* LK *":

weblogic:UP:16447::::::3

และฉันสามารถใช้ ssh กับ Authorized_keys ได้ตามปกติ


1

ในกรณีของฉันมันเกิดจาก ( /etc/ssh/sshd_config):

PermitRootLogin no

เปลี่ยนเป็นyesเริ่มบริการใหม่และเข้าได้ตามปกติ


1

ฉันได้แก้ไขปัญหานี้แล้ว puttygen เป็นซอฟต์แวร์ของบุคคลที่สามคีย์ ssh ซึ่งสร้างขึ้นโดยไม่ได้ใช้โดยตรงดังนั้นคุณต้องทำการเปลี่ยนแปลงบางอย่าง ตัวอย่างเช่นมีลักษณะดังนี้

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20170502"
AAAAB3NzaC1yc2EAAAABJQAAAQEAr4Ffd3LD1pa7KVSBDU+lq0M7vNvLp6TewkP7
*******C4eq1cdJACBPyjqUCoz00r+LqkGA6sIFGooeVuUXTOxbYULuNQ==
---- END SSH2 PUBLIC KEY ---- 

ฉันละตัวอักษรบางตัวที่อยู่ตรงกลางแทนที่ด้วย * ถ้าไม่ใช่ StackOverflow บอกฉันว่ารูปแบบรหัสไม่ถูกต้องอย่าให้ฉันโพสต์。

นี่คือคีย์ ssh ของฉันที่สร้างโดย puttygen คุณต้องเปลี่ยนเป็นสิ่งนี้

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAr4Ffd3LD1pa7KVSBDU+lq0M7vNvLp6TewkP7wfvKGWWR7wxA8GEXJsM01FQw5hYWbNF0CDI7nCMXDUEDOzO1xKtNoaidlLA0qGl67bHaF5t+0mE+dZBGqK7jG9L8/KU/b66/tuZnqFqBjLkT+lS8MDo1okJOScuLSilk9oT5ZiqxsD24sdEcUE62S8Qwu7roVEAWU3hHNpnMK+1szlPBCVpbjcQTdiv1MjsOHJXY2PWx6DAIBii+/N+IdGzoFdhq+Yo/RGWdr1Zw/LSwqKDq1SmrpToW9uWVdAxeC4eq1cdJACBPyjqUCoz00r+LqkGA6sIFGooeVuUXTOxbYULuNQ== yourname@hostname

ในกรณีของฉันฉันได้ลบความคิดเห็นบางส่วนเช่น

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20170502"
---- END SSH2 PUBLIC KEY ----

และเพิ่มssh-rsaที่จุดเริ่มต้นเพิ่มyourname@hostnameที่สุดท้าย หมายเหตุ : อย่าลบ==ในครั้งสุดท้ายและคุณต้องเปลี่ยน "ชื่อของคุณ" และ "ชื่อโฮสต์" สำหรับคุณในกรณีของฉันคือชื่อของคุณuaskh@mycomputerคือคุณต้องการเข้าสู่ระบบ vps ของคุณเมื่อสิ่งเหล่านี้เสร็จสิ้นคุณสามารถอัปโหลดสาธารณะได้ -key ไปที่บ้าน uaskh ของ~/.ssh/authorized_keysจากcat public-key >> ~/.ssh/authorized_keysนั้นsudo chmod 700 ~/.ssh sudo chmod 600 ~/.ssh/authorized_keysแล้วคุณจะต้องแก้ไข / etc / SSH / sshd_config, RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keysระบบปฏิบัติการของฉันคือ CentOS 7 นี่เป็นครั้งแรกของฉันกับคำถาม Anwser ผมจะพยายามความพยายามของฉันจะทำอย่างไรขอขอบคุณ!


1
@ Ronak Bhatt ขอบคุณสำหรับความพยายามของฉันฉันพยายามทำให้รหัสชัดเจนขึ้นสำหรับรหัสทั้งหมดนี้ฉันใช้ ctrl + K แต่ StackOverflow บอกฉันว่า "คำอุทธรณ์ของคุณมีรหัสโปรดใช้รูปแบบที่ถูกต้อง" และฉันก็ไม่คิดว่าทำไม มันแตกต่างกันระหว่างเขียนและส่งฉันไม่สามารถส่งคำตอบของฉันได้ซึ่งทำให้ฉันต้องเพิ่มรหัสใน 'รหัส' ทีละบรรทัด ฉันจะเรียนรู้รูปแบบมาร์กดาวน์คิด
นิวเคลียร์

ในเวอร์ชันปัจจุบัน PuttyGen จะแสดงคีย์สาธารณะในรูปแบบที่ถูกต้องสำหรับการคัดลอกและวาง ดังนั้นจึงไม่จำเป็นต้องแปลงคีย์ผับสีโป๊วด้วยตนเองให้อยู่ในรูปแบบที่ถูกต้องอีกต่อไป
Erik Kalkoken

1

โอ้พระเจ้าฉันใช้เวลาหลายวันในการแก้ไขปัญหานี้ นี่คือสิ่งที่ได้ผลสำหรับฉัน ฉันกลับไปที่รูทพับแบบนี้: cd / root / mkdir .ssh cd .ssh chmod 700 .ssh nano -w บริการ Author_keys ssh เริ่มต้นใหม่ดังนั้นฉันจึงใช้ root เพื่อบันทึกผ่าน Putty และมันก็ใช้ได้ ดังนั้นลองทำเช่นเดียวกันกับผู้ใช้ที่คุณต้องการใช้ในผงสำหรับอุดรู


1

ในกรณีของฉันมันเป็นผู้ใช้ที่ไม่ถูกต้อง: การระบุแหล่งที่มาของกลุ่ม ฉันแก้ไขการตั้งค่าผู้ใช้และกลุ่มที่เหมาะสม:

sudo chown [user]:[group] -R /home/[user]

0

ฉันใช้ไฟล์ PUTTYgen กับ psftp และฉันพบปัญหานี้ใน Windows Server ของฉันเมื่อเราจำเป็นต้องสร้างคีย์ใหม่สำหรับไคลเอนต์ private_key_nameไฟล์ .ppk และไฟล์ open_ssh.txt จะต้องอยู่ในไดเรกทอรีเดียวกันสำหรับการเชื่อมต่อการทำงาน


0

ในกรณีของฉันที่บ้านใน nfs คือ 777 จำเป็นต้องเป็น 750 นั่นช่วยแก้ปัญหาได้


0

ฉันมีปัญหานี้ที่ sshd อ่านเท่านั้น authorized_keys2เพียงอ่านจาก

การคัดลอกหรือเปลี่ยนชื่อไฟล์ช่วยแก้ปัญหาให้ฉันได้

cd  ~/.ssh
sudo cat authorized_keys >> authorized_keys2

ปล. ฉันใช้ Putty จาก Windows และใช้ PuTTyKeygen สำหรับการสร้างคู่คีย์


0

ฉันประสบปัญหาคล้ายกันนี้เมื่อพยายามเข้าสู่ระบบผ่าน Mobaxterm คีย์ส่วนตัวถูกสร้างขึ้นผ่านผงสำหรับอุดรู การสร้างคีย์ใหม่ช่วยในกรณีของฉัน


0

เมื่อใช้ Cpanel คุณสามารถตรวจสอบว่าคีย์ได้รับอนุญาตหรือไม่

การเข้าถึง SSH >> คีย์สาธารณะ >> จัดการ >> อนุญาตหรือยกเลิกการอนุญาต


0

หากคุณได้รับข้อผิดพลาดนี้ /var/log/secure

ข้อผิดพลาด: key_read: key_from_blob AA
AAB3NzaC1yc2EAAAABJQAAAQEAoo3PFwX04NFG + rKz93l7em1BsUBzjHPMsswD

หมายความว่าคีย์ของคุณมีที่ว่างหากคุณสร้างคีย์ผ่าน puttgen เมื่อคุณดู.ppkไฟล์จะมีลักษณะดังนี้:

AAAAB3NzaC1yc2EAAAABJQAAAQEAoo3PFwX04NFG+rKz93l7em1BsUBzjHPMsswD
al74MLaJyhQD0pE23NS1izahbo1sJGnSJu2VJ//zxidSsba6xa6OvmeiKTwCz0E5
GMefdGVdpdbTlv99qjBl1+Nw1tDnHIC0+v9XmeZERQfCds9Kp1UivfReoYImntBC
gLtNyqRYrSu8csJCt7E1oY8QK6WP1vfYgAQ2taGyS9+g7FHyyf5VY2vH3oWzzbqz
xjsSLAv3zEQSm1LzSw9Pvc8iwasFyUMBOPj31CKQYTXyX8KpJTr0Zb7oqMauBE5L
VwxZhlcJHbj0FsMbF/+GRjvgexymCi3bHmwGQ6FEADNd0RkhdQ==

และเมื่อคุณพยายามวางคุณจะได้รับข้อผิดพลาดในการอ่านคีย์ดังนั้นลองแก้ไขคีย์และทำให้เป็นบรรทัดเดียวแล้วลอง

ควรมีลักษณะดังนี้

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAoo3PFwX04NFG+rKz93l7em1BsUBzjHPMsswDal74MLaJyhQD0pE23NS1izahbo1sJGnSJu2VJ//zxidSsba6xa6OvmeiKTwCz0E5GMefdGVdpdbTlv99qjBl1+Nw1tDnHIC0+v9XmeZERQfCds9Kp1UivfReoYImntBCgLtNyqRYrSu8csJCt7E1oY8QK6WP1vfYgAQ2taGyS9+g7FHyyf5VY2vH3oWzzbqzxjsSLAv3zEQSm1LzSw9Pvc8iwasFyUMBOPj31CKQYTXyX8KpJTr0Zb7oqMauBE5LVwxZhlcJHbj0FsMbF/+GRjvgexymCi3bHmwGQ6FEADNd0RkhdQ== username@domainname


0

สิ่งที่เหมาะกับฉันคือ:

  • หยุดอินสแตนซ์ ec2
  • ถอดระดับเสียง
  • แนบโวลุ่มกับอินสแตนซ์เก่าโดยใช้คีย์เดียวกันและสามารถ SSH ได้
  • ติดตั้งโวลุ่มในโฟลเดอร์ชั่วคราว
  • ตรวจสอบไฟล์ในไดเร็กทอรี mount_point / home / ec2-user / .ssh / authorized_keys
    • ตามหลักการแล้วไฟล์นี้จำเป็นต้องมีข้อมูลสำคัญของเรา แต่สำหรับฉันแล้วไฟล์นี้ว่างเปล่า
  • คัดลอกไฟล์อินสแตนซ์เก่า Author_keys ไปยังไดรฟ์ข้อมูลที่เมาท์ใหม่
  • ยกเลิกการต่อเชื่อมอุปกรณ์
  • แนบกลับไปที่อินสแตนซ์ ec2 เดิม
  • เริ่มต้นและปล่อยให้ผ่านการตรวจสุขภาพ

คราวนี้มันได้ผลสำหรับฉัน แต่ฉันไม่รู้ว่าทำไมมันไม่มีข้อมูลคีย์ไฟล์ของฉันในตอนแรกที่เปิดอินสแตนซ์ ตรวจสอบลิงค์นี้ด้วยhttps://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html#TroubleshootingInstancesConnectingMindTerm


0

ในกรณีของฉันปัญหาเป็นเช่นนี้ในระหว่างการสร้างคีย์ ssh ฉันตั้งใจเปลี่ยนไดเรกทอรีเริ่มต้นของคีย์ ดังนั้นแทนที่จะใช้ตำแหน่ง ~ / .ssh / Author_keys ที่ฉันเลือกใช้~/home/user/folder1/.ssh/authorized_keysเพื่อให้การเปลี่ยนแปลงเหล่านี้ใช้งานได้ฉันควรทำการเปลี่ยนแปลงเดียวกันกับตำแหน่งใหม่ในไฟล์/etc/ssh/sshd_configนี้ แต่จนกว่าฉันจะตระหนักถึงสิ่งนี้ฉันได้ลองใช้วิธีแก้ปัญหาหลายอย่างที่แนะนำโดยคนอื่นที่นี่รวมถึงการตั้งค่าการอนุญาตของโฮมโฟลเดอร์700และไดเรกทอรี600.


0

ขั้นตอนในการแก้ไขรูทเมาท์ (ที่ฉันทำตามเมื่อฉันเปลี่ยนสิทธิ์ด้วยโฟลเดอร์ผู้ใช้ ec2 และไฟล์คีย์การอนุญาต) กระบวนการนี้จะคล้ายกับการถอดและแนบไดรฟ์ปากกา

ด้านล่างนี้คือสถานการณ์อื่น ๆ ที่คุณอาจพบ -

  1. คุณกำลังใช้คีย์ส่วนตัว SSH แต่คีย์สาธารณะที่เกี่ยวข้องไม่อยู่ในไฟล์ Author_keys
  2. คุณไม่มีสิทธิ์สำหรับไฟล์ Author_keys ของคุณ
  3. คุณไม่มีสิทธิ์สำหรับโฟลเดอร์. ssh
  4. ไฟล์ Author_keys หรือโฟลเดอร์. ssh ของคุณตั้งชื่อไม่ถูกต้อง
  5. ไฟล์ Author_keys หรือโฟลเดอร์. ssh ของคุณถูกลบ

ขั้นตอนในการแก้ไข

  • หยุดอินสแตนซ์ Ec2 ที่มีปัญหา
  • ถอดไดรฟ์ข้อมูลราก (/ dev / sda1)
  • สร้างอินสแตนซ์ ec2 หรือใช้อินสแตนซ์ที่กำลังทำงานอยู่
  • ต่อเชื่อมโวลุ่มแยก (/ dev / sdvf) กับอินสแตนซ์ ec2 ใหม่

ตอนนี้หลังจากที่คุณเข้าสู่ระบบ ec2 ใหม่ให้รันขั้นตอนด้านล่าง

  • คำสั่ง Lsblk - แสดงรายการเมาท์ที่มีทั้งหมด
  • เลือกค่าการต่อเชื่อมที่คุณยกเลิกการต่อเชื่อมจากอินสแตนซ์ที่มีปัญหา
  • เมื่อผู้ใช้ ec2 รัน“ sudo mount / dev / mapper / rootvg-home / mnt” sudo mount /dev/mapper/rootvg-home /mnt
  • จากนั้นเปลี่ยนไดเร็กทอรีเป็น / mnt
  • ทำการเปลี่ยนแปลงที่จำเป็นทั้งหมด

ตอนนี้เราได้แก้ไขปริมาณของเราด้วยปัญหาที่เราประสบ ส่วนใหญ่อาจเป็นปัญหาการอนุญาตของผู้ใช้ - Umount / mnt เพื่อยกเลิกการต่อเชื่อม - ตอนนี้ไปที่คอนโซลแล้วชี้ไปที่ไดรฟ์ข้อมูลที่แนบมากับอินสแตนซ์ใหม่และถอดออก - หลังจากถอดออกแล้วให้แนบเข้ากับโวลุ่มใหม่ของคุณเป็น / dev / sda1

ด้วยเหตุนี้คุณควรจะสามารถเข้าสู่ระบบได้สำเร็จ


0

จากประสบการณ์ของฉันฉันขอแนะนำให้คุณสร้างคีย์จากผงสำหรับอุดรูไม่ควรสร้างจากฝั่ง linux เนื่องจากคีย์จะเป็นรูปแบบ PEM แบบเก่า อย่างไรก็ตามเป็นเพียงข้อเสนอแนะของฉัน ฉันทำตามขั้นตอนด้านล่างและทำงานได้ดีกับฉันและกับทีมของฉัน

  1. สร้างคู่คีย์ด้วย PuTTYGen.exe ในเครื่องของคุณ (ประเภท: RSA ความยาว: 2048 บิต)

  2. บันทึกคีย์ส่วนตัว / สาธารณะเป็นไฟล์ " id_rsa.ppk / id_rsa.pub " ในเครื่องของคุณ

  3. สร้างไฟล์ " Author_keys " ในเครื่องของคุณจากนั้นป้อนรหัสสาธารณะใน " id_rsa.pub " เป็น " Authorized_keys " โปรดจำไว้ว่าเนื้อหามีการเริ่มต้นด้วย " SSH-RSA " และบรรทัดเดียวเท่านั้น

ป้อนคำอธิบายภาพที่นี่

  1. ใช้ WinScp (หรือคำสั่ง putty) เพื่อคัดลอก " Authorized_keys & id_rsa.pub " จากในเครื่องของคุณไปยัง linux-user-home " /home/$USER/.ssh/ "

ป้อนคำอธิบายภาพที่นี่

  1. เรียกใช้คำสั่งเหล่านี้:

    chmod 700 .ssh

    chmod 600 .ssh / Authorized_keys

    chown $ USER: $ USER .ssh -R

  2. ทดสอบการตั้งค่าการเชื่อมต่อของคุณโดยโหลดคีย์ส่วนตัว " id_rsa.ppk " ในโปรไฟล์ PuTTY.exe จากนั้นคลิกเปิด (ใส่ข้อความรหัสผ่านหากมี)

ป้อนคำอธิบายภาพที่นี่

ป้อนคำอธิบายภาพที่นี่


0

ตรวจสอบคีย์ของคุณซึ่งควรเป็นคีย์ rsa (id_rsa.pub) ในวันนี้และไม่ใช่คีย์ dss (id_dsa.pub) อีกต่อไปใช้ puttygen 0.70 และเลือก RSA ในประเภทของคีย์เพื่อสร้างแทนที่คีย์สาธารณะบนโฮสต์ ~ / ssh / Authorized_keys


0

หลังจากเพิ่มคีย์แล้วให้เข้าสู่ระบบราวกับec2-userว่าคุณกำลังใช้เครื่อง Amazon Linux


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.