使用ssh连接VirtualBox虚拟机

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用ssh连接VirtualBox虚拟机相关的知识,希望对你有一定的参考价值。

参考技术A

步骤:

虚拟机的网络就相当于主机一样并行存在,所以当前主机要连接到路由器或交换机等设备,以使两个系统处于同一局域网。

NAT模式即虚拟机的网络是完全依赖于物理主机的网络。此时两个系统并不是处于同一局域网,不能简单的ping通;
但是可以设置Virtualbox在NAT模式(网络地址转换NAT)下的端口转发规则,通过设置规则可使主机连接虚拟机。

设置 -> 网络 -> 网络地址转换(NAT) -> 高级 -> 端口转发 -> 添加规则 :

示例:

测试是否安装ssh:

测试是否可以使用SSH连接 :使用密码登录(设置好端口转发后)

因为端口不是常规默认的,所以需要指定 port

如进行ssh连接则在shell中输入:

进行sftp连接(其端口与ssh是一样的,因为它是ssh的一部分):

ftp连接:

可能并不成功,不知是不是防火墙的问题,使用sftp就好了,更安全。

将上面的 username 改为自己的。

前提是虚拟机中的Linux安装了ssh服务并开启,且关闭了防火墙(或添加了相应规则)。

安装ssh:

启动服务:

查看是否启动:

配置防火墙

此时在远程客户端进行连接测试,如果可行

Linux 上安装 ssh (Ubuntu & RedHat)

使用了动态防火墙:变更后无需重启系统。它不能与静态防火墙共存。

可以选择开启某个端口,或完全关闭防火墙

查看是否已经开启:

在列出的信息中,查看port开头的行是否包含 22 。

查看防火墙状态:

临时关闭防火墙:

永久关闭防火墙:

打开防火墙:

注意需要root权限。

关闭:

开启:

开机默认关闭防火墙:(即永久)

开机默认开启防火墙:

fedora不可用
参考: http://my.oschina.net/u/217959/blog/38051

SSH原理与运用(一):远程登录
SSH原理与运用(二):远程操作与端口转发
Asrchlinux wiki:
Secure Shell (简体中文)
SSH keys (简体中文)

这部分不大全面。
公钥 是一串很长的字符,为了便于肉眼比对和识别,所以有了指纹这东西,指纹位数更便于识别且与公钥一一对应。

运行命令ssh-keygen采用rsa加密算法生成 密钥对

生成密钥对时,有一个选项要求你设置密码passphrase,该密码是用来保护你的私钥的密码。如果设置了则在使用私钥时会要求你输入这个密码; 一般不设置,记不住 【之后还可更改此密码,使用ssh-keygen -p】。

生成后最好将私钥进行备份。另还有 -C 选项,用于为指定注释 通常使用自己的邮件名作为注释

-b bits选项 Specifies the number of bits in the key to create. For RSA keys , the minimum size is 1024 bits and the default is 2048 bits. Generally, 2048 bits is considered sufficient. DSA keys must be exactly 1024 bits

示例:为了安全考虑使用RSA加密并设置 -b 4096

实际操作的一次示例:

指纹的用处之一是在使用SSH第一连接到某主机时,会返回该主机使用的公钥的指纹让你识别。示例:

把公钥上传到服务器端有很多方法:

使用sftp的示例:

使用ssh-copy-id的示例:
默认上传到 ~/.ssh/id_ecdsa.pub

上传之后:
导入公钥内容到指定的文件中

保证 authorized_keys 文件的安全

sshd的配置文件位于: /etc/ssh/sshd_config
只需配置:

关闭服务器中的SELinux服务:
其配置文件是: /etc/selinux/config
在文件中添加:

重启系统 或 使用root账户运行: setenforce Permissive

服务器端重启ssh服务:

service sshd restart

连接时出现的提示信息

相关示例:

有一次出现:

这可能是我配置了两台虚拟机,虚拟机配置端口转发时设置的IP地址和端口都是相同的。才导致此提示该主机的指纹(也可能是指公钥)已经改变;更改了端口就没有问题了。(另一种做法是删除.ssh/known_hosts文件,以后连接时再全部重新导入)

后一次出现

这段提示用于提示你是否信任该主机(这里指服务器),如果输入yes则信任该主机并且将该服务器的公钥追加到 .ssh/known_hosts文件中。

virtualBox中NAT网络模式下的ssh连接问题

最近在另一台电脑上更换了个虚拟机VirtualBox,这个虚拟机与Vmware使用上有很大的区别,首先这个虚拟机是免费的,其次网络配置会很简单,但习惯了Vmware的网络配置在VirtualBox中配置ssh远程操作上就遇到了不知道怎样连接了,下面就说下在virtualBox中NAT网络模式下的ssh连接问题,两个虚拟机在桥接模式下的ssh配置都是一样的,知识NAT模式下不同。
ssh服务设置
yum list installed | grep openssh-server 查看是否存在ssh服务
yum install openssh-server 如果不存在则进行安装
找到/etc/ssh/ 目录下的sshd配置文件sshd_config 使用vim进行修改:
将文件中的关于监听端口、监听地址前的#去掉
Port=22
ListenAddress 0:0:0:0
ListenAddress : :
PermitRootLog in yes 开启远程服务
PasswordAuthentication yes 开启用户名以及密码进行验证
保存文件并退出
sudo service sshd start 开启服务
检查服务以及端口
ps -e | grep sshd
netstat -an | grep 22

虚拟机配置ssh连接
首先在 VirtualBox虚拟机中找到网络配置,并点击端口转发进行设置,如图:
技术图片
主机端口是自己设定的,子系统端口默认就是22端口,这个端口可以在虚拟机中/etc/ssh/目录下的配置文件sshd_config文件中进行修改。(连接ssh服务的前提就是虚拟机中必须安装sshd服务并且启动)
设定后从xshell中通过127.0.0.1与设定的6022映射端口进行登录就可以了。如图:

技术图片

以上是关于使用ssh连接VirtualBox虚拟机的主要内容,如果未能解决你的问题,请参考以下文章

virtualbox - 2台虚拟机之间通过ssh互访

virtualbox虚拟机之连接本地主机同时可以连接外部网络

Virtualbox中如何查看虚拟机的IP地址,并进行SSH连接

VirtualBox 笔记

VirtualBox使用vboxmanage clonehd实现虚拟机克隆

Windows系统下VirtualBox新建Ubuntu虚拟机并采用WindTerm和XShell远程连接(2022.5.11)