当直接从Live CD镜像(例如从U盘)启动Ubuntu系统时,如果想要安装sshd服务,那么需要安装openssh-server软件包,如果用apt-get install的方式安装不了就换用aptitude安装,安装成功后却发现启动不了ssh服务,如下所示:
问题展现:
Preconfiguring packages ... Selecting previously unselected package openssh-server. (Reading database ... 154905 files and directories currently installed.) Unpacking openssh-server (from .../openssh-
server_ 1%3a6.0p1- 1ubuntu1_ i386.deb) ... Selecting previously unselected package ssh-import-id. Unpacking ssh-import-id (from .../ssh- import- id_2.12- 0ubuntu1_ all.deb) ... Processing triggers for ureadahead ... Processing triggers for ufw ... Processing triggers for man-db ... Setting up openssh-server (1:6.0p1-1ubuntu1) ... Creating SSH2 RSA key; this may take some time ... Creating SSH2 DSA key; this may take some time ... Creating SSH2 ECDSA key; this may take some time ... initctl: Unknown job: ssh start: Unknown job: ssh Setting up ssh-import-id (2.12-0ubuntu1) ... Trying to start it manually produces the same result:
ubuntu@ubuntu:~$ sudo start ssh start: Unknown job: ssh ubuntu@ubuntu:~$ sudo /etc/init.d/ssh start Rather than invoking init scripts through /etc/init.d, use the service(8) utility, e.g. service ssh start initctl: Unknown job: ssh
Since the script you are attempting to invoke has been converted to an Upstart job, you may also use the start(8) utility, e.g. start ssh
解决方案:
参考资料:openssh-server package does not start sshd on a live CD boot
这应该算是Ubuntu的一个bug,可以用下面的方法解决:
ubuntu@ubuntu:~$ sudo /usr/sbin/sshd Missing privilege separation directory: /var/run/sshd ubuntu@ubuntu:~$ sudo mkdir /var/run/sshd ubuntu@ubuntu:~$ sudo /usr/sbin/sshd ubuntu@ubuntu:~$ netstat -nlt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp6 0 0 :::22 :::* LISTEN
启动端口22表示ssh服务成功启动,可以使用ssh localhost测试下。