三台Centos7虚拟机之间实现ssh,rsh互连,虚拟机和本机基于ssh进行文件传输

​ 前言:实现内容如题,这两天在做这个,看了很多博客和一些教程,虽然实现过程磕磕绊绊,但是最后还是实现了。在此记录一下实现的过程,供大家学习参考(操作可能有误,欢迎大家评论区批评指正)


  • 本机操作系统:windows10 使用虚拟机:VMware Workstation16 Pro 虚拟机操作系统:Centos7
  • 准备:安装三个Centos7的虚拟机或者装一个虚拟机再复制另外两个,虚拟机的IP地址你可以自己定,只要别用特殊的IP地址就行了我这里的为(这里IP地址的前三位要去查一下本机对于虚拟机分配的地址(详情之后内容会涉及),要保证在同一个网段之中,只有最后一位是你自己设定的):

一,配置网络

1.首先配置网络让三台虚拟机之间可以相互ping通。这里只展示一台虚拟机如何配置,另外两台的本质上同理

点击此处打开网络编辑器,如下图所示:

点击“修改设置(这里是获取管理员权限,如果已经是管理员权限的就不用了)”——>“NAT设置”

​ 这里要确保网关和子网在同一个网段,就是前面说的192.168.154这前三个数字要相同。具体在哪看?在本机命令行输入ipconfig,找到虚拟机的适配器对应的IP地址,如下图所示:

​ 然后要做的是对于本机网络的配置:开始菜单->运行->services.msc或从控制面板中找到“服务”一项打开,找到以vmware开头的服务,确保都启用。

2.然后就是对于虚拟机的配置了:
  • 切换权限为超级用户:在终端输入su -

  • 关闭防火墙(这个很重要,不然会报错No route to host):

    • 先输入systemctl stop firewalld命令关闭防火墙,然后输入systemctl disable firewalld命令禁用防火墙即可
  • 关闭SWLINUX(Linux安全内核模块):

终端输入vim /etc/selinux/config修改命令:SELINUX=disabled。系统重启后,新的设置才能生效。

  • 修改主机名(hostbname):

    • 这个也很重要,不然会出现系统识别不出对应的虚拟机的情况,因为名字都一样
    • 具体修改是通过命令hostnamectl set-hostname ***,然后重启系统就可以了,如果想查看主机名可以通过指令hostname。改完名字之后你会发现你的终端前面显示的主机名变了。

3.配置Centos网络

​ 通过命令到cd /etc/sysconfig/network-scripts到网络配置的目录下,找到当前虚拟机使用的网络的配置文件,我这里的是ifcfg-ens32。

修改其中的配置文件如下所示(主要是加上你刚刚设定的IPADDR。而子网掩码、网关、域名这些好像不加也没什么问题),修改用vim ifcfg-ens32命令进入就可以修改了,VIM的具体使用方法网上教程很多:

4.修改host映射

​ 通过命令vim /etc/hosts进入,加上所需的各个虚拟机的IP地址和主机号即可

修改完之后需要重启一下网络,使用命令service network restart即可,就算没有重启成功你把虚拟机重启一遍也是可以的。

5.以同样的方式配置另外两台虚拟机

​ 如上所述,如果不出意外,三台虚拟机之间应该可以相互ping通,下图是在master上ping了slave1和在slave1上ping了slave2的演示。

二、实现SSH互通

1,安装并且启用SSH

​ Centos是默认安装的(使用rpm -qa|grep查看是否安装,没安装就使用yum install openssh-serverj进行安装),使用命令service sshd start启动ssh服务,使用命令chkconfig sshd on设置开机启动,

2,令三台虚拟机各自生成密钥,将各自的公共密钥传到同一台虚拟机中合并成钥匙

​ 首先分别修改三台虚拟机的ssh配置文件,使用vim /etc/ssh/sshd_config命令进入,将下列内容前面的#去掉即可。

  • Port22

  • PermitRootLogin yes

  • PubkeyAuthentication yes(允许公钥认证)

  • PasswordAuthentication yes(允许RSA认证)

  • AuthorizedKeysFile .ssh/authorized_keys (公钥存放在.ssh/au…文件中)

    修改之后通过命令service sshd restart重启ssh服务即可。

    以下内容比较重要,在此分割


    ​ 然后通过命令ssh-keygen -t rsa生成密钥,指令执行期间会问你存放路径的问题,如果你不想改路径的话就一路回车使用默认路径即可。

​ 默认存放的路径为~/.ssh/,之后使用scp id_rsa.pub root@master:/root/.ssh/ id_rsa.pub.slave1命令来实现将公钥传至主机(在slave1上操作时,向master发送公钥,为了不与master的公钥重复,因此在最后加上.slave1作为标识,slave2同理,)

​ 将其都传入主机是为了生成authorized_keys文件,包含所有机器的公钥。生成authorized_keys,此时在master的/root/.ssh/ 至少应该有id_rsa.pub.slave1 id_rsa.pub.slave2和id_rsa.pub三个文件,将三个公钥内容添加到同一文件authorized_keys中具体执行以下命令:

cd ~/.ssh/

cat id_rsa.pub >> authorized_keys

cat id_rsa.pub.slave1 >> authorized_keys

cat id_rsa.pub.slave2 >> authorized_keys

​ 此时,拥有该文件的虚拟机可以被另两台虚拟机直接登录,实现了ssh无密码验证互通,将此文件发送给slave1和slave2的/root/.ssh后,使三台虚拟机用root用户可以相互直接登录:

scp authorized_keys slave1:/root/.ssh/authorized_keys

scp authorized_keys slave2:/root/.ssh/authorized_keys

此时在master或slave2的terminal中输入ssh slave1,便可登录slave1,以此类推。展示如下

三、实现RSH互通

1、安装相关服务

​ rsh是需要先安装的,使用yum -y install rsh*安装相关服务,使用rpm -qa | grep rsh检查是否安装成功,使用service xinetd restart启动rsh服务。而在这里如果报错说不知道什么是xinetd那说明你没有安装xinetd,使用yum install -y xinetd命令进行安装即可。

2、添加相关配置文件

2.1在目录/etc/xinetd.d/下分别添加rsh,rlogin,rexec文件,其中文件内容为(**重点在于保证disable = no **):

#rsh
service shell { disable = no socket_type = stream wait = no user = root log_on_success += USERID log_on_failure += USERID server = /usr/sbin/in.rshd
}#rloginservice login { disable = no socket_type = stream wait = no user = root log_on_success += USERID log_on_failure += USERID server = /usr/sbin/in.rlogind
}#rexecservice exec { disable = no socket_type = stream wait = no user = root log_on_success += USERID log_on_failure += USERID server = /usr/sbin/in.rexecd
}

2.2然后在目录/etc/securetty中添加rexec,rsh,rlogin,可以直接打开添加,也可以通过命令

echo "rsh" >> /etc/securetty
echo "rlogin" >> /etc/securetty
echo "rexec" >> /etc/securetty

​ 具体内容如下所示:

2.3在目录/etc/hosts.equiv下添加其余虚拟机信息

2.4在/root/下创建**.rhosts**文件,文件内容和/etc/hosts.equiv相同

2.5执行下列命令启动服务

systemctl restart rsh.socket
systemctl restart rlogin.socket
systemctl restart rexec.socket
systemctl enable rsh.socket
systemctl enable rlogin.socket
systemctl enable rexec.socket

2.6启动xinetd,使用命令systemctl restart xinetd,然后通过rsh命令就可以实现接入其他的虚拟机了

三、虚拟机和本机基于SSH进行文件传输

​ 下载安装SSH Secure Shell Client 3.2.9 连接:**http://xiazai.zol.com.cn/detail/38/372685.shtml**在实现互传文件之前先要令主机和虚拟机ping通,在命令行中输入ipconfig查看本机ip,在terminal中输入ifconfig查看虚拟机ip

1关闭windows防火墙

2更改虚拟网卡设置。在NAT的连接方式下,要使主机能够ping通虚拟机,需要保证VMnet8虚拟网卡的ip地址和虚拟机的ip地址在同一网段中。打开网络与共享中心,更改适配器设置,找到VMnet8(对应NAT)设置其ipv4属性,将其改为与虚拟机ip属于同一网段

3此时主机与虚拟机应当能够相互ping通,打开SSH Secure Shell Client,点击Quick Connect,在Host name中输入虚拟机ip,在User name中输入用户名,点击connect,输入密码,成功登录的标志为显示类似terminal中的输入提示符

4点击window->New File Transfer进入文件传输界面,左边为本机文件目录,右边为虚拟机的文件目录,可直接拖拽复制


以上就是实现的所有内容了,如果遇到什么问题欢迎在评论区和我讨论

三台Centos7虚拟机之间实现ssh,rsh互连,虚拟机和本机基于ssh进行文件传输相关推荐

  1. 如何在Centos7配置ssh/rsh免密互信集群服务

    导读 分享如何在Centos7配置ssh/rsh免密互信集群服务 ssh免密互信操作 一.在SSH服务器所在机器上 1.以root用户登录,更改ssh配置文件 /etc/ssh/sshd_config ...

  2. 不同物理机与虚拟机之间的通信

    NAT模式下,实现不同物理机与虚拟机之间的通信 宿主机上虚拟机的网络配置 安装虚拟机时选择选择NTA模式 点击编辑 – 虚拟网络编辑器 – 更改设置 选择NAT设置 添加虚拟机中要映射的对应端口(这里 ...

  3. 通过ping命令测试主机与虚拟机之间是否连通

    一.查询本机.虚拟机Windows IP地址 1.本机的Windows IP地址 方法一:控制面板>网络和Internet>网络和共享中心>更改适配器设置>以太网>详细信 ...

  4. VirtualBox虚拟机与主机互通,并且虚拟机又能上网配置

    为了在VirtualBox上安装oracle 11g rac,使VirtualBox虚拟机与主机互通,并且虚拟机又能上网配置,找了很多网上文章但都没有都对最终设置方式进行详细的说明, 现在自己总结如下 ...

  5. win7系统两台电脑之间利用Socket实现文件传输---C++实现

    参考:http://www.jb51.net/article/53732.htm 本博客主要实现了简单win7系统下,两台电脑之间(客户机与服务器)的文件传输,主要是基于Windows网络编程中win ...

  6. 【笔记】SSH服务:基本概述、相关命令“ssh、scp、sftp”、验证方式、场景实践、安全优化

    SSH服务 SSH基本概述 SSH是一个安全协议,在进行数据传输时,会对数据包进行加密处理,加密后在进行数据传输.确保了数据传输安全.那SSH服务主要功能有哪些呢? 1.提供远程连接服务器的服务 2. ...

  7. Linux远程SSH终端和文件传输工具

    2019独角兽企业重金招聘Python工程师标准>>> 在Windows上打开Linux终端的工具很多,这里介绍三款目前在用的终端工具,非常好用! 1.putty 这款工具支持tel ...

  8. 虚拟机做linux服务器,linux虚拟机做服务器(linux搭建虚拟机)

    1.安装配置VM虚拟机:2.创建虚拟机,并配置虚拟机内操作系统的硬件标准:通过虚拟机制作出的系统不仅可以模拟出硬件资源.将实验环境与真机文件分离保证数据. 首先安装vsftpd软件,然后配置文件. 首 ...

  9. 7 centos ssh 单机_虚拟机下CentOS7 开启SSH连接

    在虚拟机(Vmware Workstation)下,安装了CentOS7,现在想通过SSH工具连接虚拟机中的CentOS7 1.  首先,要确保CentOS7安装了  openssh-server,在 ...

  10. 两台虚拟机之间直接通过ssh进行文件传输

    在linux系统中可以用cp进行文件的拷贝.当我们通过SSH远程登录到服务器或其他机器上的时候,要如何拷贝文件呢?答案是用scp命令.这个命令用起来也很简单. 1,从服务器拷贝文件到本地,在本地终端输 ...

最新文章

  1. ArcCore重构-Platform_Types.h实现辨析
  2. Debian与《玩具总动员》
  3. 关于移除节点的IE和Firefox的兼容问题
  4. html空格代码_编写灵活、稳定、高质量的CSS代码的规范(推荐收藏)
  5. 谷歌拼音输入法快速切换中英文解决中英文混合打字问题
  6. 什么是Adam/ReLU/YOLO?这里有一份深度学习(.ai)词典
  7. 图像/视频超分之BackProjection
  8. android之字体阴影效果
  9. 音响在线测试软件,音响检测:漫步者煲箱软件
  10. udp简单通讯示例---心跳示例
  11. iphone上下左右手势判断代码
  12. 《愚公移山》深度解读
  13. 判断闰年和平年的程序
  14. SpringBoot+SpringSecurity+Thymeleaf 演示CSRF攻击
  15. 【Rust日报】2020-01-27 QIP:Rust中的量子计算模拟
  16. 【报告分享】2021中国品牌消费趋势报告-京东大数据研究院(附下载)
  17. TCP滑动窗口协议与流量控制
  18. 第8章第14节:制作企业宣传册的公司团队第一页面 [PowerPoint精美幻灯片实战教程]
  19. Vue3 探坑之旅3
  20. oracle 批量列转行,oracle 批量列转行 逗号分隔

热门文章

  1. IE低版本升级到IE11,问题总结
  2. WEP加密概念-个人笔记
  3. WPS如何并排放置两张图片_表格技巧—Excel如何截图
  4. 定制合成:热激发延迟荧光材料PPZ-3TPT、PPZ-4TPT、PPZ-DPS或PXZ-DPS、DMAC-DPS
  5. Spring AOP具象化理解(代理模式)
  6. 38、Power Query-背后的贤内助M语言
  7. CMMI 认证为什么要提前准备?评估方式是怎样的?
  8. Meebo 和 GMail + Talk 等 WebIM 的实现方式
  9. python画图方法_python画图的两种方法
  10. 定制专属于自己的HHKB机械键盘