1、ssh常用参数、用法

    格式:ssh  user@host_ip  command

                user 可省略,省略后用户为当前登录的用户

                command 表示连接后执行的命令

             Linux 学习 10_Linux 学习

     在实际情况中,建议修改ssh的端口号,指定端口号要加p选项

              Linux 学习 10_Linux 学习_02

   

       ssh通过密钥连接:

               在客户端生成两个密钥文件

               Linux 学习 10_Linux 学习_03

               将公钥传(.pub文件)传给服务器,这个过程,需要密码登录

               Linux 学习 10_Linux 学习_04

                再次连接目标主机,将不会要求输入密码

                注意,如果变更登录的用户,那么需要重新上传密钥,因为key登录只影响当前登录的用户

 

        ssh 本地端口转发:

                如有三台主机A、B、C

                 A无法直接访问C,只能通过B转发访问C,在C上查看连接情况是B的主机

                Linux 学习 10_Linux 学习_05

                在A主机上执行:

                   ssh -L  本地不使用的端口:目标服务器IP:目标端口    中间服务器

                 Linux 学习 10_Linux 学习_06

                 -fNL :  f 表示在后台执行,N表示不启用远程shell ,否则会登录到中间主机上 , L 本地端口

                 A主机可通过本地开启的端口访问目标主机

                Linux 学习 10_Linux 学习_07

               

        ssh 远程端口转发:         

                三台主机A B C

                A无法访问C 

                在本地转发中,直接在A上执行命令打开A上的端口

                而在远程转发中,则要在B上执行命令去打开A上的端口来建立ssh连接

                 ssh -fNR   A上的端口:C主机IP:C主机端口    B主机IP

                Linux 学习 10_Linux 学习_08

                -fNR   R表示远程端口

                 在A 上通过 127.0.0.1:888 访问服务

        启用网关服务:

                  A的SSH配置文件中需要开启Gateway ,将Gateway 设置成YES

                 Linux 学习 10_Linux 学习_09

                B主机上执行

                 ssh -fNgR   A上的端口:C主机IP:C主机端口    B主机IP      g选项表示开启网关模式

                其它机器可以通过 A的IP加端口访问 C的服务

               Linux 学习 10_Linux 学习_10

                 

 

2、sshd服务常用参数

             Port 22                                SSH服务开放的端口,客户端通过此端口连接,可自定义,连接时加选项 -p
             ListenAddress 0.0.0.0          绑定的IP地址,如果主机有多个IP,可指定
             LoginGraceTime 2m           登录后如在两分钟之内没有操作会断开
             PermitRootLogin yes          允许root 用户登录
             StrictModes yes                  检查.ssh文件夹的属性,如权限,所有者等
             MaxAuthTries 6                   登录失败次数,实际只有3次,帮助文档说明是设定值的一半
             MaxSessions 10                  最大的会话连接数
             PubkeyAuthentication yes  基于key验证
             PermitEmptyPasswords no  是否允许空密码连接
             PasswordAuthentication yes  基于用户名密码连接
            ClientAliveInterval 10          秒为单位
            ClientAliveCountMax 3       连续检查3次,每次间隔10 秒,没有操作就断开
            UseDNS no                         使用dns做反向解析,提高速度改成no
            GSSAPIAuthentication yes   改成no,提高连接速度
            Banner /path/file                登录后显示欢迎信息

 

3、PAM和google模块实现ssh双因子安全验证

           在需要认证的主机上安装google-authenticator

           yum install google-authenticator       需配置好epel源

           更改sshd配置文件: vim /etc/ssh/sshd_config

             Linux 学习 10_Linux 学习_11

            在pam文件中添加认证:   vim /etc/pam.d/sshd

             Linux 学习 10_Linux 学习_12

            重新启动ssh服务

            执行命令google-authenticator:

            用浏览器打开其中的连接,会显示一个二维码

            Linux 学习 10_Linux 学习_13

           手机上也需要安装google-authenticator,打开后扫描这个二维码,会得到一串数字

           填写code后,会得到五个串号,保存它们,因为当手机丢失的时候,无法验证的话,使用这个数字会解锁

            注意的是一共五个,也就是只有五次机会,用一次少一次

            Linux 学习 10_Linux 学习_14

             实际上面的五个串号,都存放在/root/.google_authenticator文件中,可以自行在里面添加

            所有都确认后,用其它客户端连接这个台主机,会出现需要code 验证,输入手机上的code,再输入密码,即可解锁

             Linux 学习 10_Linux 学习_15

              这里是启用了key的验证,如果是密码验证则会提示输入密码

            

  4、使用chrony实现内网时间同步(一台node1从外网同步时间,其余机器从node1同步时间)          

             node1:

             yum install  -y  chrony

             更改配置文件:vim /etc/chrony.conf

             添加阿里云时间服务器地址:

             Linux 学习 10_Linux 学习_16

             设置允许同步的客户端地址,并且当断网时,依然能够为客户端提供时间同步

              Linux 学习 10_Linux 学习_17

               如果还有下级时间服务器,allow中可以只填写下级的服务器地址

               启动服务:

                Linux 学习 10_Linux 学习_18

             

             node2: 

                  安装方式相同,只是服务器指定到node1的地址:

                 Linux 学习 10_Linux 学习_19

                客户端指定所有地址:

                Linux 学习 10_Linux 学习_20

  

  5、利用cobbler实现系统自动化安装centos7

                 安装软件: yum install cobbler dhcp 

                  Linux 学习 10_Linux 学习_21

                 启动服务:systemctl httpd cobblerd tftp

                 更改cobbler配置文件: 

                    启用dhcp

                 Linux 学习 10_Linux 学习_22

                   更改服务器相关地址:

                  Linux 学习 10_Linux 学习_23

                Linux 学习 10_Linux 学习_24

                      更改完成后同步一下配置:

                  Linux 学习 10_Linux 学习_25

                   更改启动菜单名称:

                 Linux 学习 10_Linux 学习_26

                 Linux 学习 10_Linux 学习_27

                 导入cobbler loaders 文件,用自带的get-loaders 命令出错,手动拷贝

                 Linux 学习 10_Linux 学习_28

                挂载centos7 光盘,并挂载文件,用cobbler 命令导入,导入后会自动生成启动菜单

                 Linux 学习 10_Linux 学习_29

                自定义添加菜单,并指定自定义的应答文件:

                提前做好应答文件,放入/var/lib/cobbler/kickstarts/ 

                更改应答文件,url 那行 变成$tree 

                Linux 学习 10_Linux 学习_30

                执行如下命令添加自定义菜单:

                cobbler profile add --name=centos7_self --distro=CentoS-7-X86_64-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.cfg

                Linux 学习 10_Linux 学习_31

               以上准备完成

               新建虚拟机,从网络启动即可自行安装:

              Linux 学习 10_Linux 学习_32