使用这种方式连接的时候始终连接不上虚拟机,总是会提示Could not connect to…


在网上找了半天的资料才发现是因为我的虚拟机没有安装ssh服务导致的

要解决这个问题: 
首先要安装了openssh-server,如果没有安装,则通过以下命令安装: 

sudo apt-get install openssh-server


之后通过以下命令查看SSH是否启动: 

ps -e | grep ssh 


如果只有ssh-agent表示还没启动,需要 

/etc/init.d/ssh start
#或者
sudo apt-get install ssh
server sshd start



完成上述这些操作后,再次使用XShell连接虚拟机,这时又弹出这个


然后XShell虚拟机的界面出现


出现这种情况原因一般是ssh不允许root账户远程登录

解决办法是:修改SSH的配置文件/etc/ssh/sshd_config

修改

vim /etc/ssh/sshd_config

找到

Authentication:

LoginGraceTime 120
PermitRootLogin without passwd
StrictModes yes

改成

Authentication:

LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

但是前提是你得用root账户登录才能修改,不然就会显示'readonly' option is set (add ! to override)

使用su - root 登录root账户,再进行修改

如果root用户没有配置好,就使用sudo passwd root 根据提示输入密码,然后再登录进行操作

修改完成后:


首先按ESC键回到命令模式

vi保存文件有不同的选项,对应于不同的命令,你可以从下面的命令中选择一个需要的;

  • :w 保存文件但不退出vi

  • :w file 将修改另外保存到file中,不退出vi

  • :w! 强制保存,不退出vi

  • :wq 保存文件并退出vi

  • :wq! 强制保存文件,并退出vi

  • :q 不保存文件,退出vi

  • :q!不保存文件,强制退出vi

  • :e! 放弃所有修改


最后再使用XShell登录虚拟机就OK了

参考:

  1. XShell5连接Ubuntu虚拟机
  2. Linux开发环境搭建与使用——通过xshell远程连接ubuntu
  3. 关于xshell无法连接虚拟机中linux
  4. xShell连接vmware虚拟机【经典】
  5. Xshell 无法连接虚拟机中的ubuntu的问题