我今天早些时候登录了我的服务器,现在当我进入 SSH 时,我收到了错误“SSH 连接被拒绝”我正在运行 Ubuntu Hardy。服务器仍在运行,并提供我无法访问的网页。上次我使用服务器时,没有更改任何 iptables。有没有什么方法可以解决此问题?更新:我确实可以访问基于浏览器的服务器控制台。虽然速度非常慢,但我可以进一步调查。
更新:当我使用 lsof 时,似乎 ssh 没有在我的端口上运行。我运行了sudo /etc/init.d/ssh 重启 什么都没发生,我的 ssh 端口上仍然没有任何运行。当我检查 /var/log/auth.log 时,我得到:
sudo: pam_unix(sudo:session): session opened for xxxx root by yyyy(uid=0)
sudo: pam_unix(sudo:session): session closed for user xxxx by yyyy(uid=0)
看起来它正在打开然后立即关闭会话。
答案1
除了已有的答案之外,我还建议以下几点。仔细检查防火墙规则集后,确保有某种方法可以恢复防火墙。
免责声明:如果此设备是面向互联网的机器,这将删除所有接口的防火墙保护,并可能导致您的盒子被拥有。
# iptables --flush
# iptables -P INPUT ACCEPT
# iptables -P FORWARD ACCEPT
# iptables -P OUTPUT ACCEPT
# /etc/init.d/openssh-server restart
然后通过 ssh 重试连接,如果失败,请检查 /var/log/auth.log。
您还可以使用
# lsof -i TCP:22
查看 ssh 端口是否打开以及它正在监听的 IP 地址。
编辑:回复:更新,这似乎与 ssh 无关(它似乎与 sudo 权限提升有关。
尝试通过 ssh 连接时尝试 tail -f /var/log/auth.log。
连接被拒绝意味着该连接被防火墙或守护进程本身明确拒绝。
正常连接看起来是这样的:
Mar 23 13:32:32 <hostname> sshd[20100]: Accepted password for <user> from xxx.xxx.xxx.xxx port xxxxx ssh2
Mar 23 13:32:32 <hostname> sshd[20102]: (pam_unix) session opened for user <user> by (uid=0)
身份验证失败的情况如下:
Mar 23 13:35:54 <hostname> sshd[20177]: Failed password for <user> from xxx.xxx.xxx.xxx port xxxxx ssh2
如果它由于某种原因被 sshd 阻止,那么它将在身份验证日志中被忽略,如果它被防火墙阻止(请注意,防火墙可能位于主机、客户端或介于两者之间的某个地方),您将看不到任何内容。
如果是这种情况,请回复我们,从那里开始客户端、服务器和任何中间路由器上都会有 tcp 转储。
答案2
嗯,可能是因为某种原因 ssh 服务器宕机了 - 检查的一种方法是使用 netcat - netcat 应该会产生某种响应。为了安全起见,我还会从另一个 ip 地址尝试一下。
答案3
看看你的 hosts.deny 文件!也许你的 IP 不知怎么就进入了那里。
答案4
控制台访问 -> 检查 SSHd 日志 -> 修复。