今天新安装Ubuntu16.04,在使用putty去ssh连接虚拟机时,被提示connect refuse:

首先进入虚拟机,打开终端,输入service sshd start,提示 宿舍ssh.service not found:

用putty或者Xshell去ssh连接虚拟机,connect refuse解决办法

我打算安装去ssh.service,输入sudo apt-get install openssh-server,提示:

用putty或者Xshell去ssh连接虚拟机,connect refuse解决办法

原因就是/var/lib/dpkg/lock 这个资源被占用了,因为一些特殊原因安装失败,但是进程依然占用着该资源,我这里使用rm /var/lib/dpkg/lock删除,这里提示

用putty或者Xshell去ssh连接虚拟机,connect refuse解决办法

使用su root 命令切换root用户,提示:

用putty或者Xshell去ssh连接虚拟机,connect refuse解决办法

Ubuntu安装后,root用户默认是被锁定了的,不允许登录,也不允许执行“su命令到root”。对于桌面用户而言,这样可以提高安全性。但对于服务器可以设置成允许“su命令到root,但不允许root用户直接登录”。

认证失败有两种情况,一个是密码错了,我才装的新系统,密码不可能记错,那只能是另外的一个原因了,这里我使用通过重新设置root密码来解决

$sudo passwd

[sudo] password for xxx: 输入安装时那个用户的密码

Enter new UNIX password: 新的root用户密码

Retype new UNIX password: 重复新的root用户密码

passwd:已成功更新密码

用putty或者Xshell去ssh连接虚拟机,connect refuse解决办法

然后重新使用使用rm /var/lib/dpkg/lock删除前面占用进程的资源。

用putty或者Xshell去ssh连接虚拟机,connect refuse解决办法

再使用sudo apt-get install openssh-server命令安装服务,中途提示一律yes

用putty或者Xshell去ssh连接虚拟机,connect refuse解决办法

使用service sshd start命令开启ssh服务,用netstat -antp | grep sshd 命令查看

用putty或者Xshell去ssh连接虚拟机,connect refuse解决办法

最后,你就可以使用putty或xshell登录虚拟机了,然后又出问题了:

用putty或者Xshell去ssh连接虚拟机,connect refuse解决办法

直接百度问题,解决办法:

在/etc/ssh/sshd_config 中有个 PermitRootLogin, 改成“PermitRootLogin yes”就可以了

重启ssh: /etc/init.d/ssh restart

用putty或者Xshell去ssh连接虚拟机,connect refuse解决办法

OK,终于可以愉快的玩耍了!

相关文章: