从 wheezy 更新到 jessie 后 SSH 被拒绝

从 wheezy 更新到 jessie 后 SSH 被拒绝

我有一个 Raspberry Pi Model B,今天下午我将其从 wheezy 更新为 jessie。我使用 VNC 和 SSH(通常是后者)进行无头连接,因为我使用家用 LAMP 和 NodeJS 服务器。

升级前两者都运行良好。自从升级到 jessie 以来,SSH 一直拒绝我的连接。错误是:

ssh: connect to host 192.168.2.3 port 22: Connection refused

所以,我仔细检查了 IP - 没有问题。然后,我检查了主机名和用户,两者都是正确的。然后,我尝试清除 Mac 和 Pi 上的 RSA 密钥。没有运气。

最后,我检查以确保 SSH 守护进程确实正在运行。而且,事实并非如此。所以,我完成raspi-config并启动了 SSH。我再次检查服务 ssh 状态,但仍然得到空响应。

所以,我的问题是:为什么 SSH 服务没有启动,这可能与更新到 jessie 有关吗?

如果是这样,我唯一的选择是重新喘息吗?

答案1

首先检查其/etc/ssh/sshd_config是否有效,并且服务应侦听端口 22。然后检查 iptables 规则:

iptables -L -nvx

(最终,/etc/iptables/rules.v4如果您已进入系统)。

您可以检查/var/log/auth.log以下消息:

error: Could not load host key: /etc/ssh/ssh_host_rsa_key

这可能意味着某些键丢失,请检查:

ls -al /etc/ssh/ssh*key

解决这个问题的最简单方法是:

dpkg-reconfigure openssh-server

Jessie 使用某种混合模式来运行服务,应该有/etc/init.d/ssh脚本和 systemd 配置。ssh应启用Systemd服务:

systemctl is-enabled ssh

如果不是,请使用 启用systemctl enable ssh

确保该/var/run/sshd目录存在:

/bin/mkdir -p -m0755 /var/run/sshd

最后你可以尝试sshd在调试模式下运行:

/usr/sbin/sshd -f /etc/ssh/sshd_config -d  

相关内容