How to SSH to a VirtualBox guest externally through a host?

来源:互联网 发布:2016年的网络流行语 编辑:程序博客网 时间:2024/06/05 14:17

这个题目翻译过来就是: 如果在 外部的主机上 通过 SSH 连接到 VirtualBox上?

首先是: 虚拟机也就是 VirtualBox是安装在 本地的主机上的。 所以必须要提供 从本地主机到虚拟机的访问,或者从虚拟机到本地主机的访问?

如何进行访问呢? 将这两个机器看做两个单独的机器通过网络连接之后,通过SSH 协议访问即可。


这就有一个问题了VirtualBox是如何 和 主机进行网络连接的呢?

在回答这个问题之前,我们必须先解决另一个问题:如何让 VirtualBox 虚拟机 连接到互联网上?

这是大家经常遇到的一个问题: VirtualBox连接网络一般有三种方法:NAT (网络地址转换), bridge(桥接的方式), host-only (虚拟机仅仅只能和主机连接到一起)。这三种模式中,默认的方式是NAT的方式,这个方式是通过NAT的方式进行的,这样子能保证虚拟机连接到外部网络。bridge 方式相当于一种桥接的方式,DHCP服务器会给其分配一个IP 地址,这个时候虚拟机和本机是处于相同的地位。 host-only 的方式只能让主机连接到虚拟机, 相当于主机和虚拟形成了一个私有的网络。


课本上说的是: 利用 host-only方式,在虚拟机上建立一个 ssh服务器,然后再本机上启动ssh服务,连接到虚拟机上,进行远程登录,或者发送文件等功能。

但是如果利用 host-only的方式连接的话,可能会出现问题。

比如说: 有可能会出现 在选择了 host-only的方式之后,不能指定网络界面?(貌似是这个),在谷歌上通过英文搜索可以找到答案。

然后需要配置静态的IP,等操作,也还算是复杂的了。


但是 想要host 连接(SSH) 到guest 上,最好的方式是利用NAT 进行连接。

连接的步骤是:

第一: 指定规则。 ( 其实是指定  虚拟机 和本机的SSH 的不同的端口,比如说是本机端口:3023, 虚拟机端口:22)

第二: VBoxManage showvminfo myserver | grep 'Rule' 通过这个命令验证添加的规则  

第三: 在虚拟机上 运行SSH 服务器: /usr/sbin/sshd  这样就可以运行了。

第四: 本机连接到虚拟机上: ssh -p 3023 user@127.0.0.1   其中的user 是你在VM上的用户名。 (在我的本机上 和 虚拟机上用户名都是一样的)

或者可以运行  scp 进行 文件传输命令。


http://stackoverflow.com/questions/5906441/how-to-ssh-to-a-virtualbox-guest-externally-through-a-host  (最详细的解释)

http://www.360doc.com/content/12/0308/13/2660674_192716996.shtml

http://baike.baidu.com/subview/16184/5909252.htm?fr=aladdin  (ssh 命令的用法,和用处)

http://baike.baidu.com/subview/18809/15304319.htm  (scp 命令的用法)


举例如下:

login:

kkzone@HP-PC:~$  ssh -p 3022 kkzone@127.0.0.1

......

kkzone@KVB:~$ 


scp: command to transprot  file to VirutalBox  可以通过这个命令进行文件传输

kkzone@HP-PC:SAu$ scp -P 3022 SAu.c  kkzone@127.0.0.1:/home/kkzone/   这样就把文件SAu.c  复制到 VM上的 /home/kkzone/ 目录下面了

这里的 -P 注意是要大写的。 在写命令的时候,一定要了解命令式怎么一回事,不能够瞎用。


总结: 必须使用 英文 搜索,不能使用中文,而且必须用谷歌搜索引擎,这回让你节省大量的时间!  牢记












0 0
原创粉丝点击