Answers:
它应该像(使用openssh-server在全新安装上测试过)一样简单
sudo stop ssh
sudo start ssh
由于它利用了新贵,因此这是最好的方法,而不是使用/etc/init.d/ssh service
,或直接调用sshd。确保同时运行两个命令;如果您仍然遇到错误stop ssh
,start ssh
请查看错误提示,该服务可能已经停止。
(除非您尝试远程重新启动系统,否则我建议stop
/ start
over restart
。如果ssh已经停止,restart
将不会启动它。)
如果这些命令不起作用,则可能是您遇到了错误,或者是您对系统进行了太多修改,在这种情况下,您至少知道问题出在哪里。
从Ubuntu 15.04开始,默认情况下Canonical不再提供新贵。
因此,命令start
,stop
并restart
不再可用。
现在,重新启动SSH服务(或任何其他服务)的正确方法是以下两个命令之一:
sudo systemctl restart ssh
sudo service ssh restart
首先使用以下命令检查sshd是否正在运行:
ps -ef | grep sshd
您应该看到类似以下内容:
root 1234 1 0 12:28 ? 00:00:00 /usr/sbin/sshd -D
如果您没有看到的行,/usr/sbin/sshd -D
则说明sshd从未启动或已崩溃,这将需要进一步的故障排除以找出原因。
如果您看到那条线,那么接下来运行:
cat /var/run/sshd.pid
这应该显示sshd的进程ID,因此在这种情况下,您应该看到:
userid@computername:~$ cat /var/run/sshd.pid
1234
如果sshd.pid的内容与正在运行的sshd实例的进程ID不匹配,则某些错误地重新启动了它。但是,无论您在此处找到任何详细信息,都应该使您走上正确的道路。它可能是崩溃,被错误地重新启动,或者根本没有被启动。
在Ubuntu桌面上:
首先检查服务状态:
sudo service ssh status
应该显示:- Active: active (running)
如果它正在运行,则无需重新启动它。如果您仍然想重新启动它,Ubuntu将调用服务ssh,而不是sshd。
service ssh restart
但是,如果不是Ubuntu Desktop,则使用CLI:
sudo systemctl restart ssh
sudo service ssh restart
该服务也由新贵而不是sysvinit控制。因此,您可以在/etc/init/ssh.conf而不是/etc/init.d/ssh中找到它。
如果要通过以下命令编辑配置文件来更改某些设置(例如,侦听端口和root登录权限):
sudo nano /etc/ssh/sshd_config
在Ubuntu桌面上,您可以使用gedit代替nano:
最后,通过重新启动或重新加载SSH应用更改:
sudo service ssh restart
如果以上方法仍然无效,请输入以下命令:
sudo service ssh stop
sudo service ssh start
如果以上所有方法均失败,请尝试重新启动ubuntu系统:
sudo reboot -f