我在使用 时遇到了麻烦ssh
。我似乎能够通过 ssh 退出计算机,但我无法在本地通过 ssh 进入计算机,也无法从远程计算机通过 ssh 进入计算机。我已检查 和/etc/ssh/ssh_config
,/etc/ssh/sshd_config
当我启动服务时,它显示一切正常,但检查状态时,我收到“openssh-daemon 已停止”的消息。我做错了什么?
我在使用 Centos 6.3,头发都快掉光了
netstat -int | grep 22
没有反应,显示大部分xinetd
服务已关闭
Dirkssh -v -v -v
没有返回任何内容,我也没有得到任何日志信息。问题是 openssh 即使启动了也无法启动。
答案1
要调试您的问题,您可以检查的输出ssh -v -v -v ...
。
您也可以sshd
增加/etc/ssh/sshd_config
LogLevel DEBUG
日志输出正常进行/var/log/auth.log
。
答案2
Dirk
ssh -v -v -v
没有返回任何内容,我也没有得到任何日志信息。问题是 openssh 即使启动了也无法启动。
表示问题在于守护进程无法启动。
运行此 ( sudo chkconfig --list sshd
),并显示输出。在我的计算机上,它显示如下:
$ chkconfig --list sshd
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
还运行service sshd restart
并显示输出 - 应该看起来像这样,在你的情况下第一行可能是“失败”左右:
$ sudo service sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]
要在启动时启动它,请执行以下操作:
sudo chkconfig sshd on
并再次列出它的样子
chkconfig --list sshd
如果完成该步骤后仍然遇到问题,请继续按照水平规则下方概述的步骤进行调试。
首先验证sshd
确实在其默认端口上运行:
sudo lsof -i :22
netstat
(您也可以使用评论中建议的其中一行)。
假设是 Linux - 您没有说明正在使用哪种操作系统 - 请尝试类似 的命令/etc/init/sshd restart
。服务名称当然可以不同,例如openssh
,ssh
等等...
我过去在ssh
服务器端和客户端诊断问题时所做的事情与 Dirk 在他的回答中所建议的类似......但有所扩展。
您想使用同一台机器,没问题。因此,在一个选项卡/窗口中运行以下命令(用于“服务器”):
sudo $(which sshd) -dDp 22222
在客户端运行:
ssh -vvvvp 22222 localhost
第一个选项卡/窗口是否显示任何内容?如果没有,我们已经有了提示。这可能是一些奇怪的防火墙规则,或者您对Listen
中的指令进行了奇怪的设置/etc/ssh/sshd_config
。如果是这种情况,请粘贴它,然后我们从那里开始。