大家好,又见面了,我是你们的朋友全栈君。
文章目录 - 配置虚拟机网络
- Xshell 连接
- 理想的步骤
- 意外后的步骤
- Connection failed
- 出现弹框
- 错误
- 安装 openssh-server错误
- 理想的步骤
- 意外后的步骤
- Connection failed
- 出现弹框
- 安装 openssh-server错误
配置虚拟机网络
设置网络适配器连接为 桥接
ping baidu.com,看一下虚拟机是否可以联网。可以ping通说明虚拟机已经可以联网,配置没有问题
代码语言:javascript复制root@ubuntu:~$ ping www.baidu.com
PING www.a.shifen.com (180.101.49.11) 56(84) bytes of data.
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=1 ttl=45 time=29.8 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=2 ttl=45 time=28.8 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=3 ttl=45 time=28.8 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=4 ttl=45 time=30.2 ms
获取当前虚拟机的ip。
代码语言:javascript复制root@ubuntu:~$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.10.119 netmask 255.255.255.0 broadcast 192.168.10.252
inet6 fe80::dc87:af4d:a711:a1c4 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:04:3e:bf txqueuelen 1000 (Ethernet)
RX packets 11261 bytes 3981183 (3.9 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2072 bytes 199955 (199.9 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
当前获取的IP 一般是动态IP。Ubuntu 下可以通过命令
代码语言:javascript复制root@ubuntu:~$ cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto ens33
# 此时为 dhcp ip动态分配
iface ens33 inet dhcp
本地系统使用cmd命令窗口,如果可以ping通(192.168.10.119)说明已经可以连接了。
如果在本地可以ping通 虚拟机的ip,就可以通过xshell连接了。
如果没有ping通可以看一下linux防火墙是否关闭。
Xshell 连接
一般我们连接linux时使用ssh连接协议。
理想的步骤
点击【文件】->【新建】打开新建会话属性弹框,输入虚拟机的主机ip。
切换选项卡【用户身份验证】。输入用户名,密码
需要注意的是该用户名不是系统的登录用户名。
而是新建一个命令窗口后通过who
指令显示的当前用户名。
root@ubuntu:~$ who
root:0 2019-12-10 23:50 (:0)
本例就是: root
设置完属性 点击【确定】按钮就不出意外可以连接上了。
意外后的步骤
Connection failed
如果出了意外呢??
目前就处于 ip可以ping通,但是xshell连接失败。
检查虚拟机 ssh
是否启动。
root@ubuntu:~$ ps -e | grep ssh
1405 ? 00:00:00 ssh-agent
没有看到sshd
就说明未启动,选择下面的一种方式手动启动就好了
sudo service sshd start
sudo /etc/init.d/ssh start
正常启动没有提示(可以ps查看是否启动)。如果未安装则会报出以下错误
代码语言:javascript复制Failed to start sshd.service: Unit sshd.service not found.
使用下面的命令安装即可,安装过程中可能因为(openssh-client)版本不兼容的问题。
代码语言:javascript复制sudo apt install openssh-server
安装成功后默认就会启动服务。
如果ssh已启动,还是无法连接,那么需要查看ssh的配置文件。监听端口号等信息是否修改
代码语言:javascript复制cat /etc/ssh/ssh_config
SSH远程登录配置文件sshd_config详解
出现弹框
用户名或者密码有误。请检查用户名、密码是否正确。
尤其是用户名 要保证和 打开终端(Terminal)时前面提示的用户名一致。
代码语言:javascript复制root@ubuntu:~$
本例就是:root
。
如果要修改密码,点击左上角菜单【文件】–>【打开】。弹出以下弹框
选中要修改的连接右键点击【属性】,弹出会话框。切换【用户身份验证】,修改用户名、密码
错误
安装 openssh-server错误
代码语言:javascript复制root@ubuntu:~$ sudo apt install openssh-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
openssh-server : Depends: openssh-client (= 1:7.6p1-4ubuntu0.3)
Depends: openssh-sftp-server but it is not going to be installed
Recommends: ssh-import-id but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
这是因为openssh-server
依赖于openssh-client
。ubuntu是自带openssh-client
的但是版本不匹配,所以在蛞后后面给出了它依赖的版本(= 1:7.6p1-4ubuntu0.3
)。
这样我们只需要安装1:7.6p1-4ubuntu0.3
版本的openssh-client
就可以了。
root@ubuntu:~$ sudo apt install openssh-client=1:7.6p1-4ubuntu0.3
之后就会打出一些日志信息,并询问你是否需要继续。输入 y
(不区分大小写)就会进行依赖包的下载
After this operation, 4132 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
之后再安装 openssh-server
就可以了。
安装完成后,查看进程信息,如果显示sshd
则说明成功安装openssh-server。
root@ubuntu:~$ ps -e |grep ssh
1405 ? 00:00:00 ssh-agent
4593 ? 00:00:00 sshd
参看文章: Xshell连接虚拟机中的Ubuntu
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/190479.html原文链接:https://javaforall.cn