เข้าสู่ระบบในเซิร์ฟเวอร์ ssh: การอนุญาตถูกปฏิเสธโปรดลองอีกครั้ง


9

ฉันพยายามที่จะเข้าสู่เซิร์ฟเวอร์ ssh ของฉันโดยใช้ชื่อผู้ใช้และรหัสผ่าน แต่ฉันได้รับข้อผิดพลาดนี้หลังจากป้อนรหัสผ่านที่ถูกต้อง:

Permission denied, please try again.

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

นี่คือไฟล์ sshd_config ของฉัน:

# ไฟล์การกำหนดค่าที่สร้างขึ้น
# ดูรายละเอียด manpage sshd_config (5)

# พอร์ตอะไร IP และโปรโตคอลที่เรารับฟัง
พอร์ต 22
# ใช้ตัวเลือกเหล่านี้เพื่อ จำกัด อินเทอร์เฟซ / โปรโตคอลที่ sshd จะผูกไว้
#ListenAddress ::
#ListenAddress 0.0.0.0
พิธีสาร 2
# HostKeys สำหรับรุ่นโปรโตคอล 2
HostKey / etc / ssh / ssh_host_rsa_key
HostKey / etc / ssh / ssh_host_dsa_key
HostKey / etc / ssh / ssh_host_ecdsa_key
#Privilege Separation เปิดอยู่เพื่อความปลอดภัย
ใช้สิทธิ์พิเศษแยกต่างหากใช่

# อายุการใช้งานและขนาดของรหัสเซิร์ฟเวอร์รุ่น 1 ชั่วคราว
KeyRegenerationInterval 3600
ServerKeyBits 768

# การบันทึก
SyslogFacility AUTH
LogLevel INFO

# รับรองความถูกต้อง:
LoginGraceTime 120
PermitRootLogin ไม่
StrictModes ใช่

RSAAuthentication ใช่
PubkeyAuthentication ใช่
#AuthorizedKeysFile% h / .ssh / authorized_keys

# อย่าอ่านไฟล์ ~ / .rhosts และ ~ / .shosts ของผู้ใช้
IgnoreRhosts ใช่
# เพื่อให้ใช้งานได้คุณจะต้องใช้คีย์โฮสต์ใน / etc / ssh_known_hosts

RhostsRSAA หมายเลขอ้างอิง
# ที่คล้ายกันสำหรับรุ่นโปรโตคอล 2
โฮสต์การตรวจสอบหมายเลขที่
# Uncomment หากคุณไม่ไว้วางใจ ~ / .ssh / known_hosts สำหรับ RhostsRSAAuthentication
#IgnoreUserKnownHosts ใช่

# หากต้องการเปิดใช้งานรหัสผ่านที่ว่างเปล่าให้เปลี่ยนเป็นใช่ (ไม่แนะนำ)
PermitEmptyPasswords no

# เปลี่ยนเป็นใช่เพื่อเปิดใช้งานรหัสผ่านการตอบกลับความท้าทาย (ระวังปัญหาด้วย
# โมดูล PAM และเธรดบางตัว)
ChallengeResponseAuthentication no

# เปลี่ยนเป็นไม่ใช่เพื่อปิดการใช้งานรหัสผ่านแบบข้อความที่ชัดเจน
รหัสผ่านการตรวจสอบใช่

# ตัวเลือก Kerberos 
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd ใช่
#KerberosTicketCleanup ใช่

# GSSAPI ตัวเลือก
#GSSAPIA การตรวจสอบหมายเลข
#GSSAPICleanupCredentials ใช่

X11 การส่งต่อใช่
X11DisplayOffset 10
พิมพ์เลขที่
PrintLastLog ใช่
TCPKeepAlive ใช่
#UseLogin ไม่

#MaxStartups 10:30:60 
#Banner /etc/issue.net

# อนุญาตให้ไคลเอ็นต์ส่งผ่านตัวแปรสภาพแวดล้อมของโลแคล
ยอมรับ Env LANG LC_ *

ระบบย่อย sftp / usr / lib / openssh / sftp-server

# ตั้งค่านี้เป็น 'ใช่' เพื่อเปิดใช้งานการรับรองความถูกต้องของ PAM การประมวลผลบัญชี
# และการประมวลผลเซสชั่น หากเปิดใช้งานการตรวจสอบ PAM จะทำ
# ได้รับอนุญาตผ่าน ChallengeResponseAuthentication และ
# รหัสผ่านการตรวจสอบข้อเท็จจริง ขึ้นอยู่กับการกำหนดค่า PAM ของคุณ
# การตรวจสอบ PAM ผ่านทาง ChallengeResponseAuthentication อาจข้ามได้
# การตั้งค่าของ "PermitRootLogin ไม่มีรหัสผ่าน"
# หากคุณต้องการให้บัญชี PAM และการตรวจสอบเซสชันทำงานโดยไม่ต้องทำ
# การรับรองความถูกต้อง PAM จากนั้นเปิดใช้งานสิ่งนี้ แต่ตั้งค่า PasswordAuthentication
# และ ChallengeResponseAuthentication เป็น 'ไม่'
ใช้ PAM ใช่ 
ไม่สนใจผู้ใช้
รหัสผ่านการตรวจสอบใช่

ฉันได้เพิ่ม 2 บรรทัดสุดท้ายในความพยายามครั้งล่าสุดเพื่อให้มันใช้งานได้ (ฉันมีพวกเขาใน vps อื่น ๆ ของฉันและพวกเขาทำงานที่นั่น)

นี่คือรายการของไดเรกทอรี ~ / .ssh / ของผู้ใช้ของฉัน:

ls -la /home/skerit/.ssh
รวม 16
drwx ------ 2 skerit skerit 4096 2011-06-25 15:11
drwxr-xr-x 4 skerit skerit 4096 2011-07-07 21:05 ..
-rw-r - r-- 1 skerit skerit 1882 2011-06-25 15:15 authorized_keys
-rw-r - r-- 1 skerit skerit 884 2011-06-23 22:59 known_hosts 

นี่คือผลลัพธ์ของ / usr / sbin / sshd -d:

debug1: userauth-request สำหรับผู้ใช้ skerit service ssh-connection ไม่มีวิธี
debug1: พยายาม 0 ล้มเหลว 0
debug1: PAM: การเริ่มต้นสำหรับ "skerit"
debug1: PAM: ตั้งค่า PAM_RHOST เป็น "82.197.70.70"
debug1: PAM: ตั้งค่า PAM_TTY เป็น "ssh"
debug1: userauth-request สำหรับผู้ใช้ skerit service ssh-connection method วิธี publickey
debug1: พยายาม 1 ล้มเหลว 0
debug1: ทดสอบว่า pkalg / pkblob เป็นที่ยอมรับหรือไม่
debug1: การตรวจสอบไฟล์บัญชีดำ /usr/share/ssh/blacklist.RSA-2048
debug1: การตรวจสอบไฟล์บัญชีดำ /etc/ssh/blacklist.RSA-2048
debug1: temporary_use_uid: 1000/1000 (e = 0/0)
debug1: ลองไฟล์พับลิกคีย์สาธารณะ /home/skerit/.ssh/authorized_keys
debug1: fd 4 การล้าง O_NONBLOCK
debug1: restore_uid: 0/0
debug1: temporary_use_uid: 1000/1000 (e = 0/0)
debug1: ลองใช้ไฟล์กุญแจสาธารณะ /home/skerit/.ssh/authorized_keys2
debug1: ไม่สามารถเปิดคีย์ที่ได้รับอนุญาต '/home/skerit/.ssh/authorized_keys2': ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
debug1: restore_uid: 0/0
ล้มเหลว publickey สำหรับ skerit จาก 82.197.70.70 พอร์ต 57154 ssh2
debug1: userauth-request สำหรับผู้ใช้ skerit service ssh-connection รหัสผ่านวิธีการ
debug1: พยายาม 2 ล้มเหลว 1
debug1: PAM: การตรวจสอบรหัสผ่านล้มเหลวสำหรับ skerit: การตรวจสอบสิทธิ์ล้มเหลว
รหัสผ่านล้มเหลวสำหรับ skerit จาก 82.197.70.70 พอร์ต 57154 ssh2 

ฉันพยายามลงชื่อเข้าใช้เซิร์ฟเวอร์ ssh จากเซิร์ฟเวอร์ ssh (ในเครื่อง) โดยใช้ชื่อผู้ใช้และรหัสผ่านเดียวกันและใช้งานได้ นี่คือในไฟล์ auth.log:

8 ก.ค. 12:21:50 vpsnl1 sshd [27298]: debug1: ไม่สามารถเปิดไฟล์คีย์ '/ etc / ssh / ssh_host_ecdsa_key': ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
8 ก.ค. 12:21:50 vpsnl1 sshd [27298]: ข้อผิดพลาด: ไม่สามารถโหลดรหัสโฮสต์: / etc / ssh / ssh_host_ecdsa_key
8 ก.ค. 12:22:16 vpsnl1 sshd [27298]: pam_unix (sshd: auth): การตรวจสอบล้มเหลว; logname = uid = 0 euid = 0 tty = ssh ruser = rhost = ผู้ใช้ 82.197.70.70 =
skerit
8 ก.ค. 12:23:50 vpsnl1 sshd [27439]: เซิร์ฟเวอร์กำลังฟังพอร์ต 0.0.0.0 22
8 ก.ค. 12:23:50 vpsnl1 sshd [27439]: เซิร์ฟเวอร์กำลังฟัง :: พอร์ต 22
8 ก.ค. 12:24:07 vpsnl1 sshd [27458]: ข้อผิดพลาด: ไม่สามารถโหลดโฮสต์คีย์: / etc / ssh / ssh_host_ecdsa_key
8 ก.ค. 12:24:14 vpsnl1 sshd [27458]: รหัสผ่านที่ยอมรับสำหรับ skerit จาก 127.0.0.1 พอร์ต 57667 ssh2
8 ก.ค. 12:24:14 vpsnl1 sshd [27458]: pam_unix (sshd: เซสชั่น): เซสชั่นเปิดสำหรับผู้ใช้ skerit โดย (uid = 0)
8 ก.ค. 12:24:25 vpsnl1 sshd [27471]: ได้รับการตัดการเชื่อมต่อจาก 127.0.0.1: 11: ถูกยกเลิกการเชื่อมต่อโดยผู้ใช้
8 ก.ค. 12:24:25 vpsnl1 sshd [27458]: pam_unix (sshd: เซสชั่น): เซสชั่นปิดสำหรับผู้ใช้ skerit 

คุณสามารถเพิ่ม ssh-config ของคุณได้ไหม
Bart De Vos

เอาล่ะเพิ่มไฟล์ config!
skerit

วิธีการเกี่ยวกับการอนุญาตใน. ssh คุณสามารถโพสต์ ls -la ~ / .ssh บนเซิร์ฟเวอร์ได้หรือไม่
mkudlacek

ตกลงฉันได้เพิ่มรายการไฟล์ของผู้ใช้ที่ฉันพยายามเข้าสู่ระบบ
skerit

1
Authorized_keys ไม่ควรอ่านได้ทั่วโลก แต่มันไม่ได้อธิบายว่าทำไมคุณไม่สามารถเข้าสู่ระบบด้วยรหัสผ่าน คุณสามารถทำได้su skeritในบัญชีของคุณ?
mkudlacek

คำตอบ:


9

คุณแน่ใจหรือว่าบัญชีผู้ใช้ที่คุณพยายามเข้าถึงนั้นได้รับการกำหนดค่าอย่างถูกต้อง? หากคุณเข้าสู่ระบบในฐานะรูทบนระบบคุณสามารถsuเข้าสู่บัญชีผู้ใช้ได้หรือไม่?

# su - username

คุณเห็นอะไรในบันทึกของคุณหลังจากพยายามเชื่อมต่อล้มเหลว ในระบบหลาย sshd จะเข้าสู่ระบบเพื่ออะไรหรือ/var/log/secure /var/log/auth.logนอกจากนี้ฉันทราบว่าคุณได้PasswordAuthenticationเปิดใช้งาน แต่ChallengeResponseAuthenticationปิดการใช้งาน คุณเห็นลักษณะการทำงานเดียวกันChallengeResponseAuthenticationหรือไม่ถ้าคุณเปิดใช้งาน

นี่คือขั้นตอนการวินิจฉัยทั่วไปที่จะใช้เมื่อคุณมีปัญหา ssh:

  • เปิดใช้งานการวินิจฉัย verbose ใน ssh:

    ssh -v host.example.com
    

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

  • รันเซิร์ฟเวอร์ในโหมดดีบัก

    บนเซิร์ฟเวอร์ของคุณหยุด sshd จากนั้นเรียกใช้จากบรรทัดคำสั่งดังนี้:

    /usr/sbin/sshd -d
    

    สิ่งนี้จะสร้างบันทึกการดีบักแบบ verbose stderrซึ่งมักจะมีข้อมูลที่เป็นประโยชน์

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


ตกลงฉันได้เพิ่มเอาท์พุท โดยทั่วไป: เมื่อฉันเข้าสู่ระบบจากระยะไกลมันบอกว่ารหัสผ่านไม่ดีเมื่อฉันลองเข้าสู่ระบบในพื้นที่มันบอกว่ารหัสผ่านนั้นโอเคและให้ฉันเข้ามา
skerit

2
มันWASรหัสผ่าน ฉันเปลี่ยนรหัสผ่านผ่านทางคอนโซลเว็บ (บางแอปพลิเคชันจาวา) และแม้ว่ารหัสผ่านที่ป้อนนั้นเป็นสิ่งสำคัญสำหรับสิ่งที่ฉันพิมพ์ลงในคอนโซลของฉัน แต่สำหรับค่า Ascii จะต้องแตกต่างกัน ฉันเปลี่ยนมันเป็นสิ่งที่ง่ายขึ้นล็อกอินด้วยวิธีที่ถูกต้องผ่านผงสำหรับอุดรูและเปลี่ยนกลับมาอีกครั้ง ตอนนี้มันใช้งานได้
skerit

@skerit - อาจมีปัญหาการเข้ารหัสอักขระแล้ว - อาจ UTF8 เทียบกับ ASCII หรือไม่
วอร์เรน

ดีใจที่ได้ยินสิ่งต่าง ๆ กำลังทำงาน!
larsks

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