web-dev-qa-db-ja.com

sshできません。接続は終了ステータス254で即座に終了します

最近覚えているのは、ソフトとハードのmemlock ulimitを無制限に変更することです。今、私はマシンにsshできません。

これはsshログです。

Authenticated to IP ([IP]:22).
debug1: channel 0: new [client-session]
debug2: channel 0: send open
debug1: Requesting [email protected]
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 [email protected] 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. ssh user@Host 'bash --noprofile'によるnorc noprofileログインを試行しています

  2. Ttyをssh -t user@Hostで強制

  3. Bash_profileを移動しました。 ssh user@Hostがsshingを試行しました。

  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で接続する方法はありますか?

12
theTuxRacer

変えよう

UsePAM yes

オン

UsePAM no

/etc/ssh/sshd_config(CentOSの場合)

12
frad sorvensen

同様の問題があり、次の奇妙なメッセージしか表示されないようです。

client_input_channel_req:チャネル0 rtype終了ステータス応答0。

Sshしようとしたユーザーにデフォルトシェルがありませんでした。

私は以下を実行しました:

chsh -s $(which sh) username 

そして、sshができました。

注意:
su usernameを実行すると、終了コード1が返されていました(失敗していました)。

4
GabLeRoux

Mac OS Xでこれに遭遇しましたが、~/.bashrcの設定に問題があり、sshが機能しましたが、 sftp tonotは機能しません。 @stéphane-chazelasは、上のコメントで正しい考えを持っているようです。

SSH経由のリモートシステムで、~/.bashrcの名前を~/.bashrc-MOVEDに変更し、再試行して、機能するかどうかを確認します。次に~/.bashrcを復元し、問題を特定します。

私のシステムでは、~/.bashrcに以下が含まれています:

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

おそらく犯人だった。

2
razzed

今日も同じ問題がありました。最初に気付いたのは、/ var/logが100%であることを修正しましたが、問題は解決しませんでした。 sshでログインすることも、GUI経由でログインすることもできませんでしたが、CNTRL + ALT + F2でCLIにアクセスし、その方法でログインすることができました。 startxと入力し、/ tmp/.X0-lockが存在するというエラーを受け取りました。

そのファイルを削除し(技術的には/ tmpからすべてを削除しました)、GUIとsshからログインできました。

1
Jerry P

カーネルパラメータファイル/etc/security/limits.confのOpenファイル構成を無制限に変更し、接続を失いました。

Rootユーザーの通常の状態に戻した後、接続を戻しました。

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
Santosh Garole