最近覚えているのは、ソフトとハードの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
ここに投稿する前に、私は今まで失敗して次のことを試しました:
ssh user@Host 'bash --noprofile'
によるnorc noprofileログインを試行しています
Ttyをssh -t user@Host
で強制
Bash_profileを移動しました。 ssh user@Host
がsshingを試行しました。
読み込まれないようにlimits.conf
ファイルの名前を変更します。
Sshサーバーを再起動しました。
knife
を介してknife ssh "name:server" "come_command"
としてコマンドを実行します
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で接続する方法はありますか?
変えよう
UsePAM yes
オン
UsePAM no
/etc/ssh/sshd_config
(CentOSの場合)
同様の問題があり、次の奇妙なメッセージしか表示されないようです。
client_input_channel_req:チャネル0 rtype終了ステータス応答0。
Sshしようとしたユーザーにデフォルトシェルがありませんでした。
私は以下を実行しました:
chsh -s $(which sh) username
そして、ssh
ができました。
注意:su username
を実行すると、終了コード1
が返されていました(失敗していました)。
Mac OS Xでこれに遭遇しましたが、~/.bashrc
の設定に問題があり、ssh
が機能しましたが、 sftp
tonotは機能しません。 @stéphane-chazelasは、上のコメントで正しい考えを持っているようです。
SSH経由のリモートシステムで、~/.bashrc
の名前を~/.bashrc-MOVED
に変更し、再試行して、機能するかどうかを確認します。次に~/.bashrc
を復元し、問題を特定します。
私のシステムでは、~/.bashrc
に以下が含まれています:
if [ -z "$PS1" ] ; then
exit
fi
おそらく犯人だった。
今日も同じ問題がありました。最初に気付いたのは、/ var/logが100%であることを修正しましたが、問題は解決しませんでした。 sshでログインすることも、GUI経由でログインすることもできませんでしたが、CNTRL + ALT + F2でCLIにアクセスし、その方法でログインすることができました。 startxと入力し、/ tmp/.X0-lockが存在するというエラーを受け取りました。
そのファイルを削除し(技術的には/ tmpからすべてを削除しました)、GUIとsshからログインできました。
カーネルパラメータファイル/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