无法ssh,连接会立即以退出状态254终止


12

我记得最近的事情是将软性和硬性memlock ulimit更改为unlimited。现在,我无法进入机器。

这是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'

我不确定以这种方式运行inline:命令是否可行ssh user@host "some_command",因为我无法获得简单的目录清单。我也尝试过重启,ssh user@host 'reboot'但不认为命令已执行。我也从AWS重新启动了机器,但未成功。

尝试ssh是一个迷失的原因吗?有什么办法可以让我进入服务器?


1
如果远程用户的登录外壳是bash,则bash总是通过ssh读取〜/ .bashrc。没有办法解决。您可以在那里sftp并以这种方式检查/更改您的bashrc吗?
斯特凡Chazelas

使用Cyber​​Duck尝试了sftp,得到了SSH_FXP_INIT错误代码。
theTuxRacer 2014年

您还可以使用-v选项获得更多详细的输出,或者使用-vv选项获得更多,然后获得更多-vvv选择。例如ssh -vvv user@host。这可以让您更好地了解问题出在哪里。
沃里克

试过了。这是我从那里得到日志的地方。
theTuxRacer 2014年

您是否可以使用其他任何文件(FTP / HTTP ...?)或Shell(控制台)访问该计算机?
斯特凡Chazelas

Answers:


12

尝试改变

UsePAM yes

UsePAM no

/etc/ssh/sshd_config(适用于CentOS)


它有效,但是为什么呢?
FelikZ

1
抱歉,但我不记得原因了)
frad sorvensen

SELinux在这里发挥作用吗?想知道是否/etc/security/limits.conf已经失去了软管和pam 的上下文,所以不能再使用它了。
史蒂夫

如果您使用的是发行版,systemd恕我直言,这是一个不好的解决方案。这将阻止logind打开会话,并且当/如果用户正在重新引导计算机,则将启动某些进程,因为用户将不会按预期停止。

在我的情况下,原因是每个处理器的用户“硬打开失败限制”大于nr_open。(nr_open重启机器时重置):您可以检查nr_openby cat /proc/sys/fs/nr_open和硬打开的文件ulimit -Hn。如果您仍然希望ssh登录用户使用“硬打开文件配置”,则需要增加nr_opensudo sysctl -w fs.nr_open=NUM_BIGGER_THAN_HARD
Xin Meng

4

我有一个类似的问题,我似乎只看到以下奇怪的消息:

client_input_channel_req: channel 0 rtype exit-status reply 0.

用户我试图ssh进入没有一个默认的shell

我执行以下操作:

chsh -s $(which sh) username 

然后我能够了ssh

注意:

Running su username正在返回退出代码1(失败),现在可以正常工作了。


1
神圣的胡言乱语!这也是我的问题。我尝试让“系统”用户(没有HOME,没有SHELL)与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

我将内核参数文件/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

1

我今天有同样的问题。我注意到的第一件事/var/log是100%。

我已修复该问题,但仍未解决问题。我不能ssh,也不我可以通过图形用户界面登录,但我可以Ctrl+ Alt+ F2去CLI和登录的方式。我输入startx并收到了一个错误/tmp/.X0-lock

我删除了该文件(从技术上讲,我删除了所有内容/tmp),并且能够通过GUI和也登录ssh


谢谢!在我的情况下,它被/home填充到我所用100%检测df -h在CentOS 7
RAM237
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.