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

三台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 
}

#rlogin

service login { 
    disable = no 
    socket_type = stream 
    wait = no 
    user = root 
    log_on_success += USERID 
    log_on_failure += USERID 
    server = /usr/sbin/in.rlogind 
}

#rexec

service 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进入文件传输界面,左边为本机文件目录,右边为虚拟机的文件目录,可直接拖拽复制
在这里插入图片描述


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

  • 14
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值