我记得的最近一件事是将软硬内存锁 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
在发布到这里之前,到目前为止我已经尝试过以下方法但未成功:
尝试使用norc noprofile登录
ssh user@host 'bash --noprofile'
强制 tty
ssh -t user@host
移动了 bash_profile。尝试通过 ssh 进行
ssh user@host
.重命名该
limits.conf
文件,希望它不会被读取。重新启动 ssh 服务器。
knife
通过as运行命令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'
我不确定这种运行命令 inline: 的方式是否ssh user@host "some_command"
有效,因为我无法获得简单的目录列表。我也尝试重新启动,ssh user@host 'reboot'
但不认为该命令已执行。我也从AWS重新启动了机器,但不成功。
尝试 ssh 会失败吗?有什么办法可以 ssh 进入服务器吗?
答案1
尝试改变
UsePAM yes
在
UsePAM no
在
/etc/ssh/sshd_config
(对于 CentOS)
答案2
我遇到了类似的问题,我似乎只看到以下奇怪的消息:
client_input_channel_req: channel 0 rtype exit-status reply 0.
我试图ssh
进入的用户没有默认的 shell。
我运行了以下命令:
chsh -s $(which sh) username
然后我就能够了ssh
。
笔记:
运行su username
返回退出代码1
(失败),现在它可以正常工作了。
答案3
我将内核参数文件 /etc/security/limits.conf 中的打开文件配置更改为无限制,并失去了连接。
将其恢复为 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
答案4
我遇到过这个Mac OS X其中的配置~/.bashrc
有问题导致ssh
工作,sftp
但是不是工作。 @stéphane-chazelas 在上面的评论中似乎有正确的想法。
在通过 SSH 的远程系统上,重命名~/.bashrc
为~/.bashrc-MOVED
并重试,看看是否有效;然后恢复~/.bashrc
并确定问题。
在我的系统上~/.bashrc
包含以下内容:
if [ -z "$PS1" ] ; then
exit
fi
这可能是罪魁祸首。