ssh 할 수 없음, 종료 상태 254로 연결이 즉시 종료 됨


12

내가 기억하는 가장 최근의 일은 부드럽고 단단한 memlock ulimit를 무제한으로 변경하는 것입니다. 이제 기계에 넣을 수 없습니다.

이것은 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. 로 noc 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. knifeas 를 통해 명령을 실행하십시오.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는 항상 ssh를 통해 ~ / .bashrc를 읽습니다. 그 주위에 방법이 없습니다. sftp를 사용하여 bashrc를 확인 / 변경할 수 있습니까?
Stéphane Chazelas

CyberDuck을 사용하여 sftp를 시도했지만 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
죄송하지만, 이유를 기억하지
못합니다

여기에 SELinux가 있습니까? /etc/security/limits.confpam이 더 이상 사용되지 않는지 궁금해합니다 .
steve

systemd이것을 사용하여 배포를 사용하는 경우 나쁜 해결책 IMHO입니다. 이렇게하면 logind세션이 열리지 않으며 사용자가 시스템을 재부팅 할 때 사용자가 예상대로 중지되지 않으므로 일부 프로세스가 시작됩니다.
Bigon

제 경우에는 프로세서 당 사용자 하드 오픈 필 제한이보다 큽니다 nr_open. ( nr_open기계를 다시 시작할 때 재설정 됨) : nr_openby 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를 사용하기 위해 "시스템"사용자 (HOME 및 SHELL 없음)를 만들려고 시도했지만 인증 할 수는 있지만 SFTP 또는 SCP 또는 SSH를 사용할 수 없습니다. 이것은 내 문제를 해결했습니다. 감사!
Dave

2

나는에이 발생했습니다 맥 OS X 의 구성은 어디에서 ~/.bashrc발생하는 문제가 있었다 ssh하지만, 대한 작업 sftp하지 작동합니다. @ stéphane-chazelas는 위의 의견에서 올바른 아이디어를 가지고있는 것 같습니다.

SSH를 통한 원격 시스템에서 이름 ~/.bashrc을 바꾸고 ~/.bashrc-MOVED다시 시도한 후 작동하는지 확인하십시오. 그런 다음 ~/.bashrc문제 를 복원 하고 결정하십시오.

내 시스템에는 다음이 ~/.bashrc포함되어 있습니다.

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

어느 쪽이 범인 일까.


1

커널 매개 변수 파일 /etc/security/limits.conf의 Open files 구성을 무제한으로 변경하고 연결이 끊어졌습니다.

루트 사용자를 위해 정상으로 되 돌린 후 연결을 다시 얻었습니다.

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 %였습니다.

나는 그것을 고쳤지만 문제를 해결하지 못했습니다. sshGUI를 통해 로그인 할 수 없거나 로그인 할 수 없었지만 Ctrl+ Alt+ F2를 사용하여 CLI에 접속하여 로그인 할 수있었습니다. 입력 startx한 오류가 발생했습니다 /tmp/.X0-lock.

나는 그 파일을 (기술적으로 모든 것을 제거했다 /tmp) 제거 하고 GUI와를 통해 로그인 할 수 있었다 ssh.


감사! 필자의 경우 CentOS 7 /home을 사용하여 감지 한 최대 100 %까지 채워졌습니다 df -h.
RAM237
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.