SSH หยุดทำงานหลังจากยอมรับรหัสสาธารณะ


1

ฉันได้รับพฤติกรรมแปลก ๆ จาก ssh ฉันพยายามที่จะเข้าสู่ระบบเพื่อผู้ใช้ ssh ชื่อ 'nfs' (เช่นssh nfs@example.com) และมันก็รับคีย์สาธารณะ แต่แขวน

เนื้อหาของssh -vvvทันทีหลังจากการเชื่อมต่อมีดังนี้

debug1: Authentication succeeded (publickey).
Authenticated to [REDACTED].
debug1: channel 0: new [client-session]
debug3: ssh_session2_open: channel_new: 0
debug2: channel 0: send open
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Remote: Forced command.
debug1: Remote: Forced command.
debug2: callback start
debug2: fd 3 setting TCP_NODELAY
debug3: packet_set_tos: set IP_TOS 0x10
debug2: client_session2_setup: id 0
debug2: channel 0: request pty-req confirm 1
debug1: Sending environment.
debug3: Ignored env TERM_PROGRAM
debug3: Ignored env TERM
debug3: Ignored env SHELL
debug3: Ignored env TMPDIR
debug3: Ignored env Apple_PubSub_Socket_Render
debug3: Ignored env TERM_PROGRAM_VERSION
debug3: Ignored env TERM_SESSION_ID
debug3: Ignored env USER
debug3: Ignored env SSH_AUTH_SOCK
debug3: Ignored env __CF_USER_TEXT_ENCODING
debug3: Ignored env PATH
debug3: Ignored env PWD
debug3: Ignored env APPLICATION_ENV
debug3: Ignored env JAVA_HOME
debug1: Sending env LANG = en_US.UTF-8
debug2: channel 0: request env confirm 0
debug3: Ignored env XPC_FLAGS
debug3: Ignored env XPC_SERVICE_NAME
debug3: Ignored env HOME
debug3: Ignored env SHLVL
debug3: Ignored env LOGNAME
debug3: Ignored env SECURITYSESSIONID
debug3: Ignored env _
debug2: channel 0: request shell confirm 1
debug2: callback done
debug2: channel 0: open confirm rwindow 0 rmax 32768
debug2: channel_input_status_confirm: type 99 id 0
debug2: PTY allocation request accepted on channel 0
debug2: channel 0: rcvd adjust 2097152
debug2: channel_input_status_confirm: type 99 id 0
debug2: shell request accepted on channel 0

ดังนั้นดูเหมือนว่าจะยอมรับคีย์และการเชื่อมต่อ แต่มันไม่ได้ให้พรอมต์ ฉันสามารถเข้าสู่ระบบในฐานะผู้ใช้รายอื่นและ su เป็นผู้ใช้ 'nfs' (และฉันได้รับพรอมต์ bash) ดังนั้นฉันรู้ว่าการกำหนดค่าผู้ใช้นั้นใช้ได้ แต่มีบางอย่างขัดขวางการเชื่อมต่อ ssh โดยตรง ฉันไม่แน่ใจว่าหมายถึงรายการบันทึกเหล่านี้ ใครช่วยได้บ้าง


เชลล์ที่ระบุสำหรับผู้ใช้ nfs ในไฟล์ / etc / passwd ของคุณคืออะไร?
Alessandro Dotti Contra

เพียงแค่อยากรู้อยากเห็นเมื่อคุณทดสอบนี้เป็นครั้งแรกโดยการเข้าสู่ระบบในฐานะผู้ใช้อื่นแล้วเปลี่ยนบัญชีมากกว่าการใช้su nfsสิ่งที่เกิดขึ้นถ้าคุณใช้login nfs? ฉันสงสัยว่าsuการลงชื่อเข้าใช้ไม่เต็มประสิทธิภาพหรือไม่ su -l nfsพยายามลงชื่อเข้าใช้แบบเต็ม แต่ดูเหมือนว่าการใช้งานจริงloginนั้นเป็นของจริงมากกว่า
Spiff

มันถูกตั้งค่าเป็น / bin / bash และใช่ฉันสามารถloginเป็นผู้ใช้ 'nfs' และใช้งานได้ดี ฉันแค่ต้องตั้งรหัสผ่านชั่วคราวและเข้าสู่ระบบ
Zach Himsel

คำตอบ:


0

การdebug1: Remote: Forced command.แนะนำให้ใช้รหัสสาธารณะที่คุณลงชื่อเข้าใช้ด้วยระบุคำสั่งที่จะเรียกใช้ดังนั้นคุณจะไม่ได้รับเชลล์ ตรวจสอบไฟล์nfsของผู้ใช้authorized_keysและดูว่ากุญแจที่คุณใช้มีไฟล์command="command"แนบคำสั่งหรือไม่ ถ้าเป็นเช่นนั้นคุณจะต้องลบหรือใช้รหัสคู่อื่นหรือใช้รหัสผ่านรับรองความถูกต้อง ฯลฯ


นี่มัน! ขอบคุณ! ดูเหมือนว่า sysadmins สำหรับเซิร์ฟเวอร์นี้มีคำสั่งที่ระบุด้วยคีย์ SSH (พวกเขาตั้งค่าเชลล์เป็น / bin / sleep 7d) เห็นได้ชัดว่าฉันเพิ่งรู้ว่าสิ่งนี้ไม่มีจุดหมายเลยเนื่องจากเซสชัน SSH เหล่านี้ใช้เพื่อส่งต่อพอร์ตและไม่จำเป็นต้องใช้เชลล์
Zach Himsel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.