当直接从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: [email protected]:~$ sudo start ssh start: Unknown job: ssh [email protected]:~$ 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
解决方案:
这应该算是Ubuntu的一个bug,可以用下面的方法解决:
[email protected]:~$ sudo /usr/sbin/sshd Missing privilege separation directory: /var/run/sshd [email protected]:~$ sudo mkdir /var/run/sshd [email protected]:~$ sudo /usr/sbin/sshd [email protected]:~$ 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测试下。
参考资料:openssh-server package does not start
sshd on a live CD boot
解决live CD方式启动Ubuntu系统不能启动openssh-server服务
时间: 2024-10-11 15:12:23