zoukankan      html  css  js  c++  java
  • Linux就该这么学 20181005(第九章SSH远程对话)

    参考链接https://www.linuxprobe.com/

    nmtui开启网卡设置
    ONBOOT=yes
    systemctl restart network
    
    nmcli connection show 
    展示当前网卡信息
    [root@linuxprobe ~]# nmcli connection add con-name company ifname eno16777736 autoconnect no type ethernet ip4 
    
    192.168.10.10/24 gw4 192.168.10.1
    
    绑定两块网卡
    一般来讲,生产环境必须提供7×24小时的网络传输服务。借助于网卡绑定技术,不仅可以提高网络传输速度,更重要的是,还可以确保在
    
    其中一块网卡出现故障时,依然可以正常提供网络服务。假设我们对两块网卡实施了绑定技术,这样在正常工作中它们会共同传输数据,
    
    使得网络传输的速度变得更快;而且即使有一块网卡突然出现了故障,另外一块网卡便会立即自动顶替上去,保证数据传输不会中断。
    
    第一步 添加一块网卡 并且模式要相同
    第二步 配置网卡为一块从属网卡,服务于主网卡,不应该再有自己的IP地址等信息
    [root@linuxprobe ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
    TYPE=Ethernet
    BOOTPROTO=none
    ONBOOT=yes
    USERCTL=no
    DEVICE=eno16777736
    MASTER=bond0
    SLAVE=yes
    [root@linuxprobe ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno33554968
    TYPE=Ethernet
    BOOTPROTO=none
    ONBOOT=yes
    USERCTL=no
    DEVICE=eno33554968
    MASTER=bond0
    SLAVE=yes
    还需要将绑定后的设备命名为bond0并把IP地址等信息填写进去,这样当用户访问相应服务的时候,实际上就是由这两块网卡设备在共同提
    
    供服务。
    
    [root@linuxprobe ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0
    TYPE=Ethernet
    BOOTPROTO=none
    ONBOOT=yes
    USERCTL=no
    DEVICE=bond0
    IPADDR=192.168.161.40
    GATEWAY=192.168.161.2
    PREFIX=24
    DNS=192.168.10.1
    NM_CONTROLLED=no
    第3步:让Linux内核支持网卡绑定驱动。常见的网卡绑定驱动有三种模式—mode0、mode1和mode6。下面以绑定两块网卡为例,讲解使用的
    
    情景。
    
    mode0(平衡负载模式):平时两块网卡均工作,且自动备援,但需要在与服务器本地网卡相连的交换机设备上进行端口聚合来支持绑定技
    
    术。
    
    mode1(自动备援模式):平时只有一块网卡工作,在它故障后自动替换为另外的网卡。
    
    mode6(平衡负载模式):平时两块网卡均工作,且自动备援,无须交换机设备提供辅助支持。
    
    比如有一台用于提供NFS或者samba服务的文件服务器,它所能提供的最大网络传输速度为100Mbit/s,但是访问该服务器的用户数量特别多
    
    ,那么它的访问压力一定很大。在生产环境中,网络的可靠性是极为重要的,而且网络的传输速度也必须得以保证。针对这样的情况,比
    
    较好的选择就是mode6网卡绑定驱动模式了。因为mode6能够让两块网卡同时一起工作,当其中一块网卡出现故障后能自动备援,且无需交
    
    换机设备支援,从而提供了可靠的网络传输保障。
    
    下面使用Vim文本编辑器创建一个用于网卡绑定的驱动文件,使得绑定后的bond0网卡设备能够支持绑定技术(bonding);同时定义网卡以
    
    mode6模式进行绑定,且出现故障时自动切换的时间为100毫秒。
    
    [root@linuxprobe ~]# vim /etc/modprobe.d/bond.conf
    alias bond0 bonding
    options bond0 miimon=100 mode=6
    
    systemctl stop NetworkManager
    systemctl restart network
    
    
    9.2 远程控制服务
    9.2.1 配置sshd服务
    SSH(Secure Shell)是一种能够以安全的方式提供远程登录的协议,也是目前远程管理Linux系统的首选方式。在此之前,一般使用FTP或
    
    Telnet来进行远程登录。但是因为它们以明文的形式在网络中传输账户密码和数据信息,因此很不安全,很容易受到黑客发起的中间人攻
    
    击,这轻则篡改传输的数据信息,重则直接抓取服务器的账户密码。
    
    想要使用SSH协议来远程管理Linux系统,则需要部署配置sshd服务程序。sshd是基于SSH协议开发的一款远程管理服务程序,不仅使用起来
    
    方便快捷,而且能够提供两种安全验证的方法:
    
    基于口令的验证—用账户和密码来验证登录;
    
    基于密钥的验证—需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,并与服务器中的公钥进行比较;该方式相较来说更安全
    
    。
    
    前文曾多次强调“Linux系统中的一切都是文件”,因此在Linux系统中修改服务程序的运行参数,实际上就是在修改程序配置文件的过程
    
    。sshd服务的配置信息保存在/etc/ssh/sshd_config文件中。运维人员一般会把保存着最主要配置信息的文件称为主配置文件,而配置文
    
    件中有许多以井号开头的注释行,要想让这些配置参数生效,需要在修改参数后再去掉前面的井号。sshd服务配置文件中包含的重要参数
    
    如表9-1所示。
    
    Port 22    默认的sshd服务端口
    ListenAddress 0.0.0.0    设定sshd服务器监听的IP地址
    Protocol 2    SSH协议的版本号
    HostKey /tc/ssh/ssh_host_key    SSH协议版本为1时,DES私钥存放的位置
    HostKey /etc/ssh/ssh_host_rsa_key    SSH协议版本为2时,RSA私钥存放的位置
    HostKey /etc/ssh/ssh_host_dsa_key    SSH协议版本为2时,DSA私钥存放的位置
    PermitRootLogin yes    设定是否允许root管理员直接登录
    StrictModes yes    当远程用户的私钥改变时直接拒绝连接
    MaxAuthTries 6    最大密码尝试次数
    MaxSessions 10    最大终端数
    PasswordAuthentication yes    是否允许密码验证
    PermitEmptyPasswords no    是否允许空密码登录(很不安全)
    
    
    9.2.2 安全密钥验证
    加密是对信息进行编码和解码的技术,它通过一定的算法(密钥)将原本可以直接阅读的明文信息转换成密文形式。密钥即是密文的钥匙
    
    ,有私钥和公钥之分。在传输数据时,如果担心被他人监听或截获,就可以在传输前先使用公钥对数据加密处理,然后再行传送。这样,
    
    只有掌握私钥的用户才能解密这段数据,除此之外的其他人即便截获了数据,一般也很难将其破译为明文信息。
    
    一言以蔽之,在生产环境中使用密码进行口令验证终归存在着被暴力破解或嗅探截获的风险。如果正确配置了密钥验证方式,那么sshd服
    
    务程序将更加安全。我们下面进行具体的配置,其步骤如下。
    
    第1步:在客户端主机中生成“密钥对”。
    
    [root@linuxprobe ~]# ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa):按回车键或设置密钥的存储路径
    Created directory '/root/.ssh'.
    Enter passphrase (empty for no passphrase):直接按回车键或设置密钥的密码
    Enter same passphrase again:再次按回车键或设置密钥的密码
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:
    40:32:48:18:e4:ac:c0:c3:c1:ba:7c:6c:3a:a8:b5:22 root@linuxprobe.com
    The key's randomart image is:
    +--[ RSA 2048]----+
    |+*..o .          |
    |*.o  +           |
    |o*    .          |
    |+ .    .         |
    |o..     S        |
    |.. +             |
    |. =              |
    |E+ .             |
    |+.o              |
    +-----------------+
    第2步:把客户端主机中生成的公钥文件传送至远程主机:
    
    [root@linuxprobe ~]# ssh-copy-id 192.168.10.10
    The authenticity of host '192.168.10.20 (192.168.10.10)' can't be established.
    ECDSA key fingerprint is 4f:a7:91:9e:8d:6f:b9:48:02:32:61:95:48:ed:1e:3f.
    Are you sure you want to continue connecting (yes/no)? yes
    /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
    /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
    root@192.168.10.10's password:此处输入远程服务器密码
    Number of key(s) added: 1
    Now try logging into the machine, with: "ssh '192.168.10.10'"
    and check to make sure that only the key(s) you wanted were added.
    第3步:对服务器进行设置,使其只允许密钥验证,拒绝传统的口令验证方式。记得在修改配置文件后保存并重启sshd服务程序。
    
    [root@linuxprobe ~]# vim /etc/ssh/sshd_config 
     ………………省略部分输出信息………………
     74 
     75 # To disable tunneled clear text passwords, change to no here!
     76 #PasswordAuthentication yes
     77 #PermitEmptyPasswords no
     78 PasswordAuthentication no
     79 
     ………………省略部分输出信息………………
    [root@linuxprobe ~]# systemctl restart sshd
    第4步:在客户端尝试登录到服务器,此时无须输入密码也可成功登录。
    
    [root@linuxprobe ~]# ssh 192.168.10.10
    Last login: Mon Apr 13 19:34:13 2017
    
    
    远程传输命令
    scp
    -v    显示相信的连接进度
    -P    指定远程主机的sshd端口号
    -r    用于传送文件夹
    -6    使用IPv6协议
    
    #将我方文件传到20号机的/home目录
    # scp /root/readme.txt 192.168.10.20:/home
    
    #将对方的文件下载到本地/root目录
    # scp 192.168.10.20:/etc/redhat-release /root
    
    
    9.3 不间断会话服务
    screen是一筐能够实现多窗口远程控制的开源服务程序
    会话恢复:即便网络中断,也可让会话随时恢复,确保用户不会丢失对远程会话的控制
    多窗口:每个会话都是独立运行,拥有各自独立的输入输出窗口
    会话共享:当多个用户同时登陆远程服务器,便可以使用会话共享功能让用户之间输入输出信息共享
    
    
    搭建repo
    然后yum -y install screen
    
    screen命令能做的事情非常多:可以用-S参数创建会话窗口;用-d参数将指定会话进行离线处理;用-r参数恢复指定会话;用-x参数一次
    
    性恢复所有的会话;用-ls参数显示当前已有的会话;以及用-wipe参数把目前无法使用的会话删除,等等。
    [root@linuxprobe ~]# screen -S backup
    [root@linuxprobe ~]# 
    执行命令后会立即返回一个提示符。虽然看起来与刚才没有不同,但实际上可以查看到当前的会话正在工作中。
    
    [root@linuxprobe ~]# screen -ls
    There is a screen on:
    32230.backup (Attached)
    1 Socket in /var/run/screen/S-root.
    要想退出一个会话也十分简单,只需在命令行中执行exit命令即可。
    [root@linuxprobe ~]# exit
    [screen is terminating]
    
    
    为了演示screen不间断会话服务的强大之处,我们先来创建一个名为linux的会话,然后强行把窗口关闭掉(这与进行远程连接时突然断网
    
    具有相同的效果):
    screen -S linux 创建一个screen窗口
    此时关闭会话 直接关了xshell
    重新打开
    screen -ls    查看当前存在的窗口
    There is a screen on:
     13469.linux (Detached)
    
    screen -r linux    进入之前的窗口 
    
    
    screen会话共享功能
    且它还具有会话共享、分屏切割、会话锁定等实用的功能。其中,会话共享功能是一件很酷的事情,当多个用户同时控制主机的时候,它
    
    可以把屏幕内容共享出来,也就是说每个用户都可以看到相同的内容
    
    终端A screen -S linuxprobe
    
    终端B screen -x
    
    此时两台服务器就共同使用一块屏幕了
    
    
    1.配置网卡参数可有使用nmtui命令
    2.网卡会话技术的目的是nmcli命令来管理网卡会话的目的为了快速切换网卡从参数,以便适应不同的工作场景
    3.网卡绑定技术mode6 平时两块网卡均工作,且自动备援,无需交换机设备提供辅助支持
    4.Linux修改完配置文件,都需要重启服务或者重启系统
    5.sshd一般来说密钥验证方式更加安全,若用户认证需要更高的安全需求,还可以再对密钥文件进行口令加密,从而实现双层加密
    6.scp -r /root/out.txt root@192.168.10.20:/home
    7.配置yum仓库步骤:首先应创建挂载目录并将光盘镜像文件与其关联,然后修改yum的配置文件,填入参数,尤其是需要注意挂载目录的存
    
    放路径要正确无误,最后可使用yum命令来安装相关的服务程序
    [rhel7]
    name=rhel7
    baseurl=file:///media/cdrom
    enabled=1
    gpgcheck=0
    gpgkey=file:///media/cdrom/RPM-GPG-KEY-redhat-release
    8.screen需要回复窗口 先查看当前screen -S linux 创建 screen -ls 查看 然后screen -r linux 即可回复
  • 相关阅读:
    175. Combine Two Tables
    VirtualBox下安装CentOS7系统
    idea配置maven
    idea配置jdk
    SpringBoot在yml中添加自定义配置并识别
    多表联查另一个表的所有
    java后台判断字符串相等 equals
    查询字段内容截取
    idea刷新项目、清除项目缓存
    SpringBoot集成FreeMarker
  • 原文地址:https://www.cnblogs.com/Liang-jc/p/9745463.html
Copyright © 2011-2022 走看看