文章目录
1.介绍
我们经常要在虚拟机中安装一些软件,比如jdk、zookeeper。可以在虚拟机系统里面网上下载和安装软件,这种方式自不必说。另外方式是将本机下载好文件上传到虚拟机系统里面,这种方式需要在本机Windows系统里面安装远程连接软件(如
Xshell
)连接虚拟机系统,此外需要在linux中安装监听连接的工具OpenSSH
以及上传和下载文件的软件(如lrzsz
)。本文旨在帮助笔者记录学习过程,如能帮助其他同学,喜不自胜。如有问题,期盼指出。
1.1 Ubuntu系统上传和下载文件。
网上会发现很多文章介绍linux系统安装软件命令各有不同,往往令人疑惑,后来整理发现命令不同是由于linux发布版不同导致。而且有些linux发布版随着本身版本迭代,命令也有一些变化。如Ubuntu16.04
版本开始将"apt-“命令简化成"apt”。目前比较流行的linux版本分成了两个类别:
RedHat系列:Redhat、Centos、Fedora等
Debian系列:Dibian、Ubuntu等。
首先了解下几个比较常见的概念:
————RPM
RPM(Red-Hat Package Manager):最早是Red Hat研制,现在是由开源社区开发。通常linux发布版里面带有RPM,它是linux下广泛使用的软件包管理器。主要功能是安装、卸载、升级和管理软件、软件包依赖处理等。基于RPM这些优势,使用范围不局限于Red Hat中。缺点是软件之间依赖性强,比如安装一个软件时,需要安装很多其他的软件包。
————Yum
Yum(Yellowdog Updater, Modified ):是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。yum命令比较简单好记,包含安装、删除、升级和搜索软件,以及查询信息,显示软件包依赖关系等。另外供yum下载的软件都由Linux社区维护,并且基本是自由软件。
rpm 只能安装已经下载到本地机器上的rpm 包。yum能在线下载并安装rpm包,能更新系统,而且还能自动处理包与包之间的依赖问题,这个是rpm 工具所不具备的。
————dpkg
dpkg(Debian Packager):于1993年由Ian Murdock创建的,跟RPM十分相似,是Debian软件包管理器的基础,方便软件的安装,更新及移除。所有源自Dibian的Linux发行版都使用dpkg,如Ubuntu,Knoppix等。dpkg本身是一个底层的工具。上层的工具如apt,用于从远程获取软件包以及处理复杂的软件包关系。
————APT
APT(Advanced Packaging Tools):是Dibian及派生的Linux软件管理器。APT可以自动下载,配置,安装二进制或者源代码格式的软件包。APT最早被设计成dpkg的前端,用来处理deb格式的软件包。现在经过APT-RPM组织修改,APT已经可以安装在RPM的软件管理RPM包。另外需要的注意一点的是Ubuntu 16.04版本开始,原先的是"apt-"命令替换称为apt命令,更加简单和记忆。
新版命令 | 老版本命令 |
---|---|
apt install 包名 | 替代 apt-get install 包名 |
apt remove 包名 | 替代 apt-get remove 包名 |
apt search 包名 | 替代 apt-cache search 包名 |
apt show 包名 | 替代 apt-cache show 包名 |
apt update | 替代 apt-get update |
apt upgrade | 替代 apt-get upgrade |
apt list –installed | 替代 apt-get upgrade 替代 dpkg –get-selections | grep -v deinstall 替代 dpkg -l |
apt list –upgradable | apt-get -u upgrade –assume-no |
pt edit-sources | 替代 echo ‘new line of text’ | sudo tee -a /etc/apt/sources.list 替代 sudo nano /etc/apt/sources.list |
apt autoremove | 替代 apt-get autoremove |
apt purge 包名 | 替代 apt-get purge 包名 |
1.2 Ubuntu监听连接
当远程系统连接Ubuntu系统时,Ubuntu系统需要一个用于远程控制和在网络计算机之间传输数据的工具,即OpenSSH。OpenSSH是安全shell(ssh)协议系列工具的免费版本。相比传统的工具,如telnet和rcp,这些不安全的工具,使用时以明文形式传输用户密码的方式。OpenSSH提供了一个服务守护进程和客户端工具,以方便安全、加密的远程控制和文件传输操作,有效取代了传统工具。
OpenSSH server组件sshd,能持续监听来自任何客户端工具的客户端连接。当远程计算机连接ssh客户端应用程序时,OpenSSH服务器将在身份验证后设置远程控制会话。如果远程用户使用scp连接到OpenSSH服务器,OpenSSH服务器守护进程将在验证后在服务器和客户端之间启动文件的安全副本。OpenSSH可以使用许多身份验证方法,如普通密码、公钥、Kerberos Ticket。
1.3 Windows远程连接
需要在本机Windows系统上安装远程连接软件,连接成功后,可以远程操作linux系统,如同本地操作一样。常见的软件有以下几种:
————WinSCP
Windows环境下使用的SSH开源图形化SFTP客户端。同时支持SCP协议,它的主要功能是在本地与远程计算机间安全地复制文件和编辑文件。winscp也可以链接其他系统(如linux系统)。
————Xshell
Xshell是一款功能强大的终端模拟器,支持SSH1,SSH2,SFTP,TELNET,RLOGIN和SERIAL。通过提供业界先进的性能,Xshell 包含了其他SSH客户端无法发现的功能和优势。
————PuTTY
PuTTY是一款开源连接软件,最初由Simon Tatham编写,支持多种网络协议,包括SCP、SSH、Telnet、ssh、rlogin和原始套接字连接。它也可以连接到串行端口。在Window上安装PuTTY可以实现连接Unix机器(如linux)。
————SecureCRT
SecureCRT是VanDyke Software一款商业SSH(SSH1和SSH2)、Telnet客户端和虚拟终端软件。除了支持SSH,同时支持Telnet和rlogin协议,是一款用于连接运行包括Windows、UNIX和VMS的理想工具。
2.安装软件
本机环境配置:
Virtualbox版本: 5.2.32 r132073 (Qt5.6.2)
Ubuntu版本:Ubuntu 12.04
2.1 Ubuntu软件安装和网络设置
————安装lrzsz
首先需要在虚拟机系统中安装lrzsz,这个软件的作用是代替ftp上传和下载文件。
sudo apt-get install lrzsz
————安装OpenSSH
1.安装sshd服务
sudo apt-get install openssh-server
2.开启服务
/etc/init.d/ssh start
3.另外其他命令
//ssh服务是否安装
ps -e|grep ssh
//关闭服务
/etc/init.d/ssh stop
//重启服务
/etc/init.d/ssh restart
————网络设置
1.设置网络
此处设置虚拟机系统网络连接方式是网络地址转换(NAT),还有其他方式可以实现连接,此处不再赘述。
2.设置主机ip和主机端口,以及子系统端口和子系统端口号。
2.2 Windows安装Xshell
本文采用Xshell来远程连接linux。
1.设置连接的协议以及主机ip和端口号。
2.设置linux系统用户名。
3.设置登录用户对应密码。
4.当看到Connection established时,表示本机已经成功连接上虚拟机的Ubuntu系统了。
3.上传和下载文件
上面Windows系统通过Xshell成功连接到linux系统。由此可以实现本机系统和虚拟机系统之间互传文件。
1.将Ubuntu系统选定的文件发送到本地机器
sz 文件名
当运行"sz 文件名
"命令时,弹框选择要保存到本机的位置。
2.将本机的文件上传到Ubuntu系统中。
rz
运行rz
该命令会弹出一个文件选择窗口,从本地选择文件上传到Ubuntu系统。
4.出现问题
4.1 Could not load host key
OpenSSH服务正常启动时,会产生一个秘钥,报Could not load host key错误是秘钥在生成过程中出现问题。重新生成秘钥可解决。
1.先将之前有问题秘钥移除
rm -r /etc/ssh/ssh*key
2.生成秘钥(适用于Debian衍生版本)
dpkg-reconfigure openssh-server
3.查看生成的秘钥
ls -al /etc/ssh/ssh*key
另外可以通过ssh-keygen命令来生成秘钥
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
然后根据上面章节中启动OpenSSH服务
4.2 连接问题
出现一些连接问题时,需要关注一下Windows系统和Ubuntu系统防火墙。Ubuntu系统中关闭防火墙需要命令sudo ufw disable
,其他命令如下:
//查看防火墙状态
sudo ufw status
//开启防火墙
sudo ufw enable
//禁用防火墙
sudo ufw disable
5.参考
https://www.cnblogs.com/nbf-156cwl/p/8641165.html
https://blog.youkuaiyun.com/qq_24621911/article/details/78909634
https://blog.51cto.com/sf1314/1981206
https://zhuanlan.zhihu.com/p/27724520