ฉันมีปัญหาที่แน่นอนเหมือนกันที่อธิบายไว้ในหัวข้อนี้แต่คำตอบที่ยอมรับไม่มีหนึ่งที่เหมาะสมสำหรับฉันเพราะไดเรกทอรีบ้านของผู้ใช้เป็นท้องถิ่น
ฉันคิดว่าฉันกำหนดค่าทุกอย่างอย่างถูกต้องในฝั่งไคลเอ็นต์ (Windows 7, PAGEANT ของ PUTTY, PUTTYGEN และ PLINK) แต่ดูเหมือนว่าฉันจะไม่ทำให้กลไกกุญแจสาธารณะทำงานได้ ฉันทำตามทุกขั้นตอนตัวชี้นำและคำแนะนำใน:
- วิธีกำหนดค่าการรับรองความถูกต้องของคีย์ SSH ด้วย PuTTY และ Linux Server ใน 5 ขั้นตอนด่วน
- การพิสูจน์ตัวตนคีย์สาธารณะ SSH
ตอนนี้ฉันสงสัยว่าฉันอาจจะพลาดบางสิ่งบนฝั่งเซิร์ฟเวอร์ (Linux, sshd) ดังนั้นฉันกำลังโพสต์/etc/ssh/sshd_config
เนื้อหาปัจจุบัน:
Protocol 2
SyslogFacility AUTHPRIV
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
PermitEmptyPasswords yes
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
Subsystem sftp /usr/libexec/openssh/sftp-server
มีความคิดอะไรที่ฉันกำลังทำผิดหรือเปล่า?
UPDATE:ฉันพบเคล็ดลับสำหรับการเรียกใช้sshd ในโหมดแก้ไขข้อบกพร่องและนี่คือผลลัพธ์:
/home/winwin> /usr/sbin/sshd -d
debug1: sshd version OpenSSH_4.2p1
debug1: read PEM private key done: type RSA
debug1: private host key: #0 type 1 RSA
debug1: read PEM private key done: type DSA
debug1: private host key: #1 type 2 DSA
debug1: rexec_argv[0]='/usr/sbin/sshd'
debug1: rexec_argv[1]='-d'
debug1: Bind to port 22 on ::.
Server listening on :: port 22.
debug1: Bind to port 22 on 0.0.0.0.
Bind to port 22 on 0.0.0.0 failed: Address already in use.
debug1: Server will not fork when running in debugging mode.
debug1: rexec start in 4 out 4 newsock 4 pipe -1 sock 7
debug1: inetd sockets after dupping: 3, 3
Connection from 192.168.1.8 port 49828
debug1: Client protocol version 2.0; client software version PuTTY_Release_0.60
debug1: no match: PuTTY_Release_0.60
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.2
debug1: permanently_set_uid: 74/74
debug1: list_hostkey_types: ssh-rsa,ssh-dss
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: client->server aes256-ctr hmac-sha1 none
debug1: kex: server->client aes256-ctr hmac-sha1 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST_OLD received
debug1: SSH2_MSG_KEX_DH_GEX_GROUP sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_INIT
debug1: SSH2_MSG_KEX_DH_GEX_REPLY sent
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: KEX done
debug1: userauth-request for user winwin service ssh-connection method none
debug1: attempt 0 failures 0
debug1: PAM: initializing for "winwin"
debug1: PAM: setting PAM_RHOST to "win7client"
debug1: PAM: setting PAM_TTY to "ssh"
Failed none for winwin from 192.168.1.8 port 49828 ssh2
debug1: userauth-request for user winwin service ssh-connection method publickey
debug1: attempt 1 failures 1
debug1: test whether pkalg/pkblob are acceptable
debug1: temporarily_use_uid: 513/513 (e=0/0)
debug1: trying public key file /home/winwin/.ssh/authorized_keys
Authentication refused: bad ownership or modes for directory /home/winwin
debug1: restore_uid: 0/0
debug1: temporarily_use_uid: 513/513 (e=0/0)
debug1: trying public key file /home/winwin/.ssh/authorized_keys
Authentication refused: bad ownership or modes for directory /home/winwin
debug1: restore_uid: 0/0
Failed publickey for winwin from 192.168.1.8 port 49828 ssh2
Received disconnect from 192.168.1.8: 14: No supported authentication methods available
debug1: do_cleanup
debug1: PAM: cleanup
debug1: do_cleanup
debug1: PAM: cleanup
ตอนนี้ฉันสังเกตเห็นbad ownership or modes for directory /home/winwin
ข้อความสองข้อความ แต่ฉันตรวจสอบความเป็นเจ้าของหรือโหมดสำหรับไดเรกทอรี / home / winwin และ AFAICT พวกเขาตกลง:
/home> ls -lad winwin
drwxrwxr-x 21 winwin winwin 4096 Jul 13 21:24 winwin
และ:
/home/winwin> ls -lad .ssh
drwxr-xr-x 2 winwin winwin 4096 Jul 14 12:06 .ssh
และ:
/home/winwin/.ssh> ls -lad *
-rw-r--r-- 1 winwin winwin 210 Jul 14 12:06 authorized_keys
-rw-r--r-- 1 winwin winwin 210 Jul 14 01:58 authorized_keys.pub
-rw-r--r-- 1 winwin winwin 394 Jul 14 01:57 authorized_keys.pub.orig
สิ่งที่อาจจะผิด
UPDATE II:ฉันพยายามchmod 600
ตามคำแนะนำในคำตอบด้านล่าง:
/home/winwin> ls -lad .ssh
drw------- 2 winwin winwin 4096 Jul 14 13:13 .ssh
และ:
/home/winwin/.ssh> ls -lad *
-rw------- 1 winwin winwin 210 Jul 14 12:06 authorized_keys
แต่มันก็ยังไม่ทำงาน เหตุใดฉันจึงยังได้รับAuthentication refused: bad ownership or modes for directory /home/winwin
ข้อผิดพลาด
~/.ssh
~/.ssh/authorized_keys
ยังไม่มีโชค สำหรับการรับสิทธิ์กลุ่มที่สามารถเขียนได้จากโฮมไดเร็กตอรี่เองฉันไม่สามารถทำเช่นนั้นได้เพราะมันจะบ่อนทำลายจุดประสงค์ทั้งหมดของผู้ใช้ / กลุ่มนี้ที่ถูกสร้างขึ้น โฮมไดเร็กตอรี่ของผู้ใช้นี้ต้องสามารถเขียนได้โดยกลุ่ม (มีชื่อที่แน่นอนเหมือนกันและ gid!) +1 สำหรับการพยายามช่วยเหลือ