我有一个 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