ปฏิเสธการอนุญาต (publickey, รหัสผ่าน)


3

ฉันกำลังพยายามเชื่อมต่อกับไอพีท้องถิ่นผ่าน SSH จากเทอร์มินัล คำสั่งคือ

ssh -v user@192.168.0.2

แต่มันไม่ได้เชื่อมต่อ ให้ข้อผิดพลาดกับฉัน "การอนุญาตถูกปฏิเสธ (publickey, password)" ฉันค้นหามานานแล้วและไม่สามารถค้นหาว่าปัญหาคืออะไร ฉันสามารถเชื่อมต่อโดยใช้วิธีเดียวกันผ่าน Putty บน windows และสามารถเชื่อมต่อผ่าน filezilla

ผลผลิตเต็ม:

OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: Connecting to 192.168.0.2 [192.168.0.2] port 22.
debug1: Connection established.
debug1: identity file /Users/[UserName]/.ssh/id_rsa type 1
debug1: identity file /Users/UserName/.ssh/id_rsa-cert type -1
debug1: identity file /Users/UserName/.ssh/id_dsa type -1
debug1: identity file /Users/UserName/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.0p1 Debian-4+deb7u2
debug1: match: OpenSSH_6.0p1 Debian-4+deb7u2 pat OpenSSH*
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: [Server Host Key]
debug1: Host '192.168.0.2' is known and matches the RSA host key.
debug1: Found key in /Users/[UserName]/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/[UserName]/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /Users/[UserName]/.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey,password).

1
จากผลลัพธ์ดูเหมือนว่า ssh พยายามใช้ไฟล์ identiy (รวม 5-8 บรรทัด) หากคุณมีไฟล์ข้อมูลประจำตัวที่คุณใช้ตรวจสอบให้แน่ใจว่ามีการตั้งค่าการอนุญาตเพื่อให้เจ้าของเท่านั้นที่สามารถอ่าน / เขียนได้
Sarge

1
สิทธิ์ควรเป็นอย่างไร -rw------- 1 Username staff 314 9 May 00:08 id_ecdsa -rw-r--r-- 1 Username staff 199 9 May 00:08 id_ecdsa.pub -rw------- 1 Username staff 1766 8 May 22:40 id_rsa -rw-r--r-- 1 Username staff 419 8 May 22:40 id_rsa.pub -rw-r--r-- 1 Username staff 799 8 May 23:10 known_hosts
Harnamc

คำตอบ:


5

ลองเพิ่มรหัสอีกครั้ง ขั้นแรกให้ตั้งรหัสผ่านการตรวจสอบใช่ใน sshd_config ที่เครื่องปลายทางจากนั้นทำการssh-copy-id user@host เข้าสู่ระบบจากนั้นจะทำการคัดลอกคีย์ ตอนนี้คุณสามารถตั้งรหัสผ่านการตรวจสอบไม่ (ถ้าคุณต้องการเพื่อความปลอดภัยเพิ่มเติม) และคุณควรจะสามารถเข้าสู่ระบบโดยอัตโนมัติ คุณสามารถใช้ความอยากรู้ของคุณและตรวจสอบว่า id_rsa.pub จากเครื่องต้นทางอยู่ใน authorized_keys บนเครื่องปลายทาง


1
นอกจากนี้ฉันไม่คิดว่าการอนุญาตเป็นปัญหา แต่ฉันได้อ่านว่า chmod 600 นั้นใช้ได้กับทุกไฟล์ใน ~ / .ssh ด้วย 700 สำหรับไดเรกทอรีเองดังนั้นคุณจึงสามารถแสดงรายการไฟล์ในนั้นได้ แน่นอนว่าสิ่งที่น้อยกว่าจะเป็นปัญหา
barlop

1
จุดบนคู่! ทำงานอย่างมีเสน่ห์
Harnamc

3

มันอาจจะแตกต่างกันเพราะดูเหมือนว่าคุณกำลังเชื่อมต่อlocalhostหรืออะไรบางอย่าง ( 192.168.0.2หรือเป็นเพียงสำหรับคำถาม?)

สิ่งที่มักจะแก้ไขสิ่งนี้คือการแก้ไข~/.ssh/known_hostsไฟล์และลบรายการสำหรับโดเมนที่คุณกำลังเชื่อมต่อมันจะแจ้งเตือนคุณอีกครั้งสำหรับข้อมูลประจำตัว ssh และหลีกเลี่ยงปัญหาที่เกิดจาก "ความคาดหวัง" ที่ไม่ถูกต้อง


localhost 192.168.0.2 เป็นเซิร์ฟเวอร์ vpn ท้องถิ่นที่เปิดใช้งาน ssh ฉันสามารถเชื่อมต่อกับมันจากวิธีอื่นใด ฉันได้ลบไฟล์ทั้งหมดใน ~ / .ssh / known_hosts และลบไฟล์ทั้งหมดแล้วสร้างใหม่ แต่ปัญหายังคงมีอยู่ ปัญหามันเกิดขึ้นเมื่อพยายามเชื่อมต่อจาก mac ของฉัน ฉันได้ลองเชื่อมต่อผ่าน putty จากแล็ปท็อปหน้าต่างและใช้งานได้ดี แม้ sftp ผ่าน filezilla ทำงานได้อย่างสมบูรณ์แบบ
Harnamc

ลองลบอีกid_rsa.pubไหม
beroe

@beroe ฉันคิดว่า id_rsa.pub ไม่ได้ทำอะไรมาก ฉันจำการทดสอบที่ดูเหมือนว่า ssh ทำงานเหมือนกันโดยมีหรือไม่มี id_rsa.pub ฉันคิดว่า ssh ไม่ได้ใช้กุญแจสาธารณะในไฟล์ pub แม้ว่าเนื้อหาจะเหมือนกัน
barlop

1
พยายามลบและสร้างคีย์ทั้งหมดใหม่ยังคงมีปัญหาเดียวกัน ทำงานอะไรถูกตั้ง PasswordAuthentication ใช่ใน sshd_config และคัดลอกคีย์ตรงกับssh-copy-id user@host
Harnamc

ดีใจที่คุณเข้าใจและขอบคุณสำหรับการอัปเดต
beroe

1

ก่อนอื่นให้รันcat $HOME/.ssh/id_rsa.pubบนคอมพิวเตอร์ของคุณคุณจะได้รับรหัส บันทึกคีย์นี้ที่ไหนสักแห่ง

จากนั้นเปิดไฟล์นี้โดยเรียกใช้vim $HOME/.ssh/authorized_keysบนคอมพิวเตอร์ที่คุณต้องการส่ง จากนั้นคัดลอกคีย์ในบรรทัดใหม่ของไฟล์นี้และปิดโดยการพิมพ์:wq

คุณพร้อมแล้ว


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