ไม่สามารถ ssh การเชื่อมต่อจะยุติลงทันทีด้วยสถานะออก 254


12

สิ่งล่าสุดที่ฉันจำได้คือเปลี่ยน ulimit memlock ที่นิ่มและแข็งเป็นไม่ จำกัด ตอนนี้ฉันไม่สามารถ ssh เข้าไปในเครื่องได้

นี่คือบันทึก ssh

Authenticated to IP ([IP]:22).
debug1: channel 0: new [client-session]
debug2: channel 0: send open
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug2: callback start
debug2: fd 3 setting TCP_NODELAY
debug2: client_session2_setup: id 0
debug2: channel 0: request pty-req confirm 1
debug1: Sending environment.
debug1: Sending env LC_CTYPE = 
debug2: channel 0: request env confirm 0
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
Last login: Wed Aug  6 07:18:07 2014 from IP-SOURCE
debug2: channel 0: rcvd eof
debug2: channel 0: output open -> drain
debug2: channel 0: obuf empty
debug2: channel 0: close_write
debug2: channel 0: output drain -> closed
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
debug2: channel 0: rcvd eow
debug2: channel 0: close_read
debug2: channel 0: input open -> closed
debug2: channel 0: rcvd close
debug2: channel 0: almost dead
debug2: channel 0: gc: notify user
debug2: channel 0: gc: user detached
debug2: channel 0: send close
debug2: channel 0: is dead
debug2: channel 0: garbage collecting
debug1: channel 0: free: client-session, nchannels 1
Connection to IP closed.
Transferred: sent 4256, received 2504 bytes, in 0.4 seconds
Bytes per second: sent 9616.9, received 5658.0
debug1: Exit status 254

ฉันได้ลองทำสิ่งต่อไปนี้ไม่สำเร็จจนถึงตอนนี้ก่อนโพสต์ที่นี่:

  1. พยายามเข้าสู่ระบบ norc noprofile โดย ssh user@host 'bash --noprofile'

  2. บังคับให้ tty โดย ssh -t user@host

  3. ย้าย bash_profile พยายาม sshing ssh user@hostโดย

  4. การเปลี่ยนชื่อlimits.confไฟล์ด้วยความหวังว่าจะไม่สามารถอ่านได้

  5. รีสตาร์ทเซิร์ฟเวอร์ ssh

  6. เรียกใช้คำสั่งผ่านทางknifeเป็นknife ssh "name:server" "come_command"

  7. ssh user@host 'ulimit -l 64', ssh user@host 'ulimit -S -l 64', ssh user@host 'ulimit -H -l 64',ssh user@host 'exec ulimit -H -l 64'

ฉันไม่แน่ใจว่าวิธีการใช้คำสั่งแบบอินไลน์นี้ssh user@host "some_command"ทำงานได้หรือไม่เพราะฉันไม่สามารถรับรายชื่อไดเรกทอรีอย่างง่ายได้ ฉันพยายามรีบูตเครื่องด้วยssh user@host 'reboot'แต่ไม่คิดว่าคำสั่งจะถูกดำเนินการ ฉันรีสตาร์ทเครื่องจาก AWS ด้วย แต่ไม่ประสบความสำเร็จ

มันเป็นสาเหตุที่หายไปพยายามที่จะ ssh? มีวิธีใดบ้างที่ฉันจะสามารถ ssh เข้าสู่เซิร์ฟเวอร์?


1
หากเชลล์ล็อกอินของผู้ใช้รีโมตคือ bash ดังนั้น bash จะอ่าน ~ / .bashrc ผ่าน ssh เสมอ ไม่มีทางรอบนั้น คุณสามารถ sftp ที่นั่นและตรวจสอบ / แก้ไข bashrc ของคุณด้วยวิธีนี้
Stéphane Chazelas

พยายาม SFTP โดยใช้ CyberDuck ได้รับSSH_FXP_INITรหัสข้อผิดพลาด
theTuxRacer

นอกจากนี้คุณยังจะได้รับการส่งออกรายละเอียดเพิ่มเติมโดยใช้-vตัวเลือกหรือเพิ่มเติม-vvตัวเลือกในการมากยิ่งขึ้นแล้ว-vvvตัวเลือก ssh -vvv user@hostเช่น นั่นอาจทำให้คุณมีความคิดที่ดีขึ้นว่ามีอะไรผิดพลาดเกิดขึ้น
Warwick

พยายามอย่างนั้น นี่คือที่ฉันได้รับบันทึกจาก
theTuxRacer

คุณมีไฟล์อื่น ๆ (FTP / HTTP ... ?) หรือเชลล์ (คอนโซล?) เข้าถึงเครื่องที่คุณสามารถใช้ได้หรือไม่?
Stéphane Chazelas

คำตอบ:


12

ลองเปลี่ยน

UsePAM yes

บน

UsePAM no

ใน /etc/ssh/sshd_config(สำหรับ CentOS)


มันใช้งานได้ แต่ทำไม
FelikZ

1
ขอโทษ แต่ฉันไม่จำเหตุผล)
frad sorvensen

SELinux กำลังเล่นอยู่ที่นี่หรือไม่? สงสัยว่าบริบทของ/etc/security/limits.confhosed และ pam ไม่สามารถใช้อีกต่อไป
สตีฟ

หากคุณกำลังใช้การกระจายโดยใช้systemdนี่เป็นทางออกที่ไม่ดี IMHO สิ่งนี้จะป้องกันlogindการเปิดเซสชันและเมื่อ / หากผู้ใช้กำลังรีบูตเครื่องกระบวนการบางอย่างเริ่มต้นเนื่องจากผู้ใช้จะไม่หยุดตามที่คาดไว้
Bigon

ในกรณีของฉันเหตุผลคือการใช้งานฮาร์ดเปิด Fils จำกัด nr_openต่อการประมวลผลมีขนาดใหญ่กว่า ( nr_openจะถูกรีเซ็ตเมื่อรีสตาร์ทเครื่อง): คุณสามารถตรวจสอบnr_openโดยและเปิดไฟล์หนักcat /proc/sys/fs/nr_open ulimit -Hnหากคุณยังต้องการให้ผู้ใช้ล็อกอิน ssh ใช้การกำหนดค่าไฟล์แบบเปิดยากคุณต้องเพิ่มnr_open:sudo sysctl -w fs.nr_open=NUM_BIGGER_THAN_HARD
Xin Meng

4

ฉันมีปัญหาที่คล้ายกันฉันดูเหมือนจะเห็นข้อความแปลก ๆ ต่อไปนี้

client_input_channel_req: channel 0 rtype exit-status reply 0.

ผู้ใช้ผมพยายามที่จะsshเข้ามาไม่ได้มีเปลือกเริ่มต้น

ฉันวิ่งต่อไปนี้:

chsh -s $(which sh) username 

sshและจากนั้นผมก็สามารถที่จะ

บันทึก:

การทำงานsu usernameกำลังส่งคืนรหัสออก1(ล้มเหลว) และตอนนี้ก็ใช้งานได้


1
อึศักดิ์สิทธิ์ที่เป็นความลับ! นี่คือปัญหาของฉันเช่นกัน ฉันพยายามสร้างผู้ใช้ "ระบบ" (ไม่มีหน้าแรกและไม่มีเปลือก) เพื่อใช้ SFTP ด้วยและฉันสามารถตรวจสอบได้ แต่ฉันไม่สามารถใช้ SFTP หรือ SCP หรือ SSH นี่เป็นการแก้ไขปัญหาของฉัน ขอบคุณ!
เดฟ

2

ฉันพบสิ่งนี้ในMac OS Xซึ่งมีการกำหนดค่าใน~/.bashrcปัญหาที่ทำให้sshการทำงาน แต่sftpจะไม่ทำงาน @ stéphane-chazelas ดูเหมือนจะมีความคิดที่ถูกต้องในความคิดเห็นด้านบน

บนระบบรีโมตผ่าน SSH เปลี่ยนชื่อ~/.bashrcเป็น~/.bashrc-MOVEDแล้วลองอีกครั้งและดูว่าใช้งานได้หรือไม่ จากนั้นเรียกคืน~/.bashrcและตรวจสอบปัญหา

ในระบบของฉัน~/.bashrcมีสิ่งนี้:

if [ -z "$PS1" ] ; then
    exit
fi

ซึ่งเป็นผู้ร้าย


1

ฉันเปลี่ยนการตั้งค่าไฟล์ Open ในเคอร์เนลไฟล์ /etc/security/limits.conf เพื่อให้การเชื่อมต่อไม่ จำกัด และหายไป

หลังจากคืนค่ามันกลับสู่ระดับปกติสำหรับผู้ใช้รูทฉันได้รับการเชื่อมต่อกลับมา

Wrong Example:
## Example hard limit for max opened files
*        hard   nofile unlimited
root     hard   nofile  unlimited
## Example soft limit for max opened files
*        soft   nofile unlimited
root     soft   nofile unlimited

Correct Ex:
## Example hard limit for max opened files
*        hard   nofile 16000
root     hard   nofile 16000
## Example soft limit for max opened files
*        soft   nofile 16000
root     soft   nofile 16000

1

ฉันมีปัญหาเดียวกันวันนี้ สิ่งแรกที่ฉันสังเกตเห็นคือ/var/log100%

ฉันแก้ไขแล้วและก็ไม่ได้แก้ปัญหา ฉันไม่sshสามารถลงชื่อเข้าใช้ผ่าน GUI ไม่สามารถทำได้ แต่ฉันสามารถCtrl+ Alt+ F2เพื่อไปที่ CLI และลงชื่อเข้าใช้ด้วยวิธีดังกล่าว ฉันพิมพ์startxและรับข้อผิดพลาดที่/tmp/.X0-lockมีอยู่

ฉันลบไฟล์นั้น (ในทางเทคนิคแล้วฉันลบทุกอย่างออกจาก/tmp) และฉันสามารถเข้าสู่ระบบผ่าน GUI และผ่านทางsshได้


ขอบคุณ! ในกรณีของฉันมัน/homeเต็มไปถึง 100% ซึ่งฉันตรวจพบโดยใช้df -hบน CentOS 7
RAM237
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.