ssh登录 与Hadoop

SSH无密码登陆

1.什么是SSH

SSH全称Secure Shell,用来取代传统telnet和R系列命令(rlogin,rsh,rexec等)远程登陆和远程执行命令的工具。

SSH是一种加密协议,不仅在登陆过程中对密码进行加密传送,而且对登陆后执行的命令的数据也进行加密,即使别人在网络上监听并截获了你的数据包,并看不到其中的内容。

SSH服务都是由软件OpenSSH来提供的。绝大多数Linux安装包已自带。

OpenSSH已经是大多数Linux操作系统的标准组件,不需要二次安装。

2.工作原理

2.1 安全验证机制-登陆

密码登陆(账户口令登陆方式)

密钥登陆(公钥私钥非对称登陆方式)

2.2 密码登陆

2.2.1定义

客户端发出授权请求时,服务端要求输入密码进行验证授权。

2.2.2工作原理

  • 客户端向SSH服务器发出请求,服务器将自己的公钥返回给客户端。
  • 客户端用服务器的公钥加密自己的登录密码,再将信息发送给服务器。
  • 服务器接收到客户端传送的密码,用自己的私钥解码。如果结果正确,则同意登录,建立起连接,否则拒绝。

2.2.3运行流程

2.2.4演示示例

客户端A为centos实例172.168.0.3,服务器端B为centos实例172.168.0.4

从客户端A发起链接服务B,接收端服务器端B返回公钥的加密值。

输入密码验证身份

潜在问题有漏洞,中间人可以假扮成服务器,骗取客户端的密码。

2.3 密钥登陆

2.3.1定义

客户端发出授权请求时,服务端根据事先配置的密钥验证身份并授权

2.3.2工作原理

  1. Client-Server打通公钥传递
  • 客户端生成秘钥对,包括公钥、私钥
  • 私钥配置在本地,将公钥发送给服务端
  • 服务端将客户端的公钥加入到授权列表
  1. Client登陆server
  • 当客户端请求登陆服务端时,服务器验证客户端的公钥是否存在,并用公钥加密随机字符串RS生成RE,发送给客户端,进行验证。
  • 客户端用私钥解密RE后生成结果RD,将结果返回给服务器端。
  • 服务器端将RD与之前随机生成的RS比对匹配则授权,否则拒绝。

2.3.3运行流程

 客户端A为centos实例172.168.0.3;服务端B为centos实例172.168.0.4。

  1. 先将client-server打通-公钥传递
  • 客户端生成公钥私钥对

  • 将公钥以安全的方式传递到服务器端

  • 服务端将客户端的公钥加入到授权列表

  1. Client登录Server
  1. 客户端发出远程登录请求:ssh 用户名@服务器主机名或者IP
  2. 服务端查看是否有该客户端的公钥,如果有服务端生成随机字符串,并用公钥加密(就是随机字符串与公钥作某种运算),发送给客户端。
  3. 客户端使用本地的私钥对字符串解密(逆运算)。
  4. 客户端将解密后的字符串结果发送给服务端。
  5. 服务端将解密的字符串与原始字符串匹配,如果相等则验证通过,并授权客户端可以登陆。

3.常用命令与示例

3.1 OpenSSH软件包包含以下命令

ssh-keygen:用于为SSH生成、管理和转换认证密钥,它支持RSA和DSA两种认证密钥。

sshd:SSH服务端程序

sftp-server:SFTP服务端程序(类似FTP但提供数据加密的一种协议)

scp:非交互式sftp-server的客户端,用来向服务器上传/下载文件

sftp:交互式sftp-server客户端,用法和ftp命令一样

slogin:SSH的别名

ssh:SSH协议的客户端程序,用来登入远程系统或者远程执行命令

ssh-add:ssh代理相关程序,用来向SSH代理添加DSA key

ssh-agent:ssh代理程序,ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成。

3.2 命令示例

  1. ssh指定以某用户身份通过某端口登陆到远程某主机IP

ssh -p sshPortNumber yourAccount@ip

  1. 登陆到远程某主机,ip=192.168.1.14

ssh root@192.168.1.14

  1. 不指定用户的时候,默认使用当前正在使用的用户名,如当前使用root用户

ssh 192.168.1.14此命令等同于ssh root@192.168.1.14

  1. 指定登陆端口,有时考虑到安全因素会修改ssh默认22端口,若改成16608

ssh -p 16608 root@192.168.1.14

修改ssh端口的方式:vim /etc/ssh/sshd_config

找到#Port 22,去掉注释,修改成一个大于1024的端口,Port 16608。修改后需要重启ssh服务才能生效:service sshd restart。

  1. scp详解

scp就是secure copy,用来在Linux下进行远程拷贝文件到本地,或者从本地拷贝文件到远程的命令。

从本地文件拷贝至远程

[格式]:scp -P 远程ssh服务端口 本地文件路径 远程主机账户@远程主机IP地址或域名:要拷贝到远程主机的路径

[示例]:scp -P 22 ~/input.txt root@192.168.1.14:~/

从远程拷贝文件到本地

[格式]:scp -P 远程ssh服务端口 远程主机账户@远程主机IP地址或者域名:要拷贝的远程主机文件的路径 本地文件路径

[示例]:scp -P 22 root@192.168.1.14:~/input.txt  ~/

4.SSH建立互信

4.1主机名称介绍

环境中的机器越来越多,通过IP和记忆来区分机器成本太高,需要一个属性来区别与其他计算机。与人的命名相同,计算机也有一个叫做hostname的主机名的属性。

查看机器的hostname:直接输入hostname命令即可

临时修改机器的hostname,重启后失效:hostname 新机器名

永久修改机器的hostname,机器重启后不失效:修改/etc/sysconfig/network中的hostname属性为新的主机名称,最后reboot重启机器生效。

Centos7.x新命令(永久生效):hostnamectl set-hostname new_name

4.2 /etc/hosts文件介绍

DNS:Domain Name System,域名系统,解决域名到IP的对应关系查询问题。

/etc/hosts即本机上的DNS,负责主机名称到IP的对应关系查询服务。

查看默认配置,数据格式为:IP地址 域名地址 主机名称

配置主机名称与IP对应关系,使可以直接使用主机名称进行相关操作。

测试配置域名有效性:

4.3实操练习

目标:两台主机,主机名称分别为master和slave,通过master主机可以ssh登陆slave主机时无需输入密码直接登陆。其中主机master的IP:192.168.0.101,主机slave的IP:192.168.0.198。

操作过程和步骤(默认使用root用户)

  • 解决通过主机名互联互通的问题,分别设置两台主机的hostname名称。0.101主机为master,0.108主机为slave。通过hostnamectl命令修改hostname属性使永久生效。

在master所属IP对应的主机上执行:hostnamectl set-hostname master

在slave所属IP对应的主机上执行:hostnamectl set-hostname slave

  • 设置两台主机中的hosts,均在/etc/hosts添加映射关系。其中192.168.0.101对应master,192.168.0.108对应slave,两台主机的hosts文件的映射配置如下图:

  • 在主机master上分别执行ping master和ping slave,确保能ping通,即确定前边的配置是正确的。

  • 基于主机名通信,完成密钥生成与传递

在主机master上生成公钥和私钥:执行ssh-keygen -t rsa,即采用rsa加密,然后一路回车,就会按照默认选项生成的密钥保存在~/.ssh/id_rsa文件中,生成的公钥保存在~/.ssh/id_rsa.pub中。将主机master的公钥传输到主机slave中:使用scp ~/.ssh/id_rsa.pub root@slave:~/。(或者通过rz和sz命令来实现公钥传递亦可)

在主机slave中将公钥追加到授权列表authorized_keys当中。cat ~/id_rsa.pub >> ~/.ssh/authorized_keys。

  • 登陆验证密钥配置的准确性,由主机master端直接登陆slave端,查看是否可以无密码登陆。ssh root@slave。

若实现slave无密码登陆到master主机,与如上操作类似,互反一下操作即可。

二.添加用户/分组/删除

1.概念介绍

1.1用户分类

Linux是多用户、多任务操作系统,按照用户角色划分:

  1. root用户:系统唯一,是真实的,可以登陆系统,可以操作系统任何文件和命令,拥有最高权限。
  2. 虚拟用户:这类用户也被称之为伪用户或假用户,与真实用户区分开来,这类用户不具有登陆系统的能力,但却是系统运行不可缺少的用户,比如bin、daemon、adm、ftp、ssh、mail等。这类用户都是系统自身拥有的,而非用户认为添加的,当然我们也可以添加虚拟用户。
  3. 普通真实用户:这类用户能登陆系统,但只能操作自己家目录的内容。权限有限,这类用户都是系统管理员自行添加的。本节内容用到的用户为普通用户,用来完成自身需求操作的系统使用账户。在/etc/passwd中可以看到各种账户的存在。

1.2用户组

用户组:具有相同特征的用户的集合体。比如有时我们要让多个用户具有相同的权限,比如查看、修改某一文件或者执行某个命令,这时我们需要用户组,我们把用户都定义到同一用户组,我们通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的所有用户对该文件或目录都具有相同的权限,这是我们通过定义组合修改文件的权限来实现的。

用户与组的对应关系:一对一、多对一、一对多。

2.常用命令

1) 创建用户

useradd tianliang //新建tianliang用户

passwd tianliang //给tianliang用户设置密码

2) 显示用户信息

id user //查看用户的uid、gid、groups属性

3) 创建用户组

groupadd tlgroup //新建tlgroup工作组

useradd -g tlgroup tianliang //新建tianliang用户并增加到tlgroup用户组。

其中-g所属组

4) 给已有的用户增加工作组

usermod -g tlgroup tianliang //修改用户的gid,即修改所属组

gpasswd -a tianliang tlgroup //将用户追加到组tlgroup中

usermod -G tlgroup tianliang //将用户追加到组tlgroup中,tlgroup为非主组

5) 删除用户账号

userdel tianliang //永久删除该用户,不清空其/home/tianliang目录

6) 彻底删除用户:是否删除该用户的家目录等相关文件来区分

userdel -r tianliang //删除tianliang用户及其家目录下的所有数据

7) 从用户组中删除用户

gpasswd -d tianliang tlgroup //从组tlgroup中删除掉tianliang用户

8) 删除用户组

groupdel tlgroup //删除组,但当该组是某个用户的主组的时候,不能删除

9) /etc/passwd文件解析

该文件存储的是操作系统用户信息,该文件为所有用户可见,包含7个字段信息,通过cat /etc/passwd查看如下:

用户名

密码(已经加密)

UID:用户标识符,CentOS操作系统自己使用

UID=0是超级用户。

UID=1~499是伪用户(与系统和程序服务相关)

UID=500~60000为普通用户

GID:组标识,CentOS适用

GID=0是超级组

GID=1~499与系统和程序服务相关的组,如sshd等

GID=500~60000为普通组,即自定义新增的组

用户全名或本地账号

开始目录-家目录

登陆使用的Shell,就是对登陆命令进行解析的工具

三.文件权限管理详解

1.权限介绍

Linux针对文件权限分为三组:用户,用户组,其他。我们使用命令ls -l或者ll,以列表的格式化形式,即可查看文件或者目录对应的权限信息。

文件列表信息的字符意义,文件权限共10个字符,其意义分别为:

  1. 第一个字符,文件类型
    1. d:表示文件目录
    2. -:表示文件
    3. |:表示链接文件
    4. b:表示设备文件里的可供存储的接口设备
    5. c:表示设备文件里面的串行端口设备,如键盘
  2. 第2~4个字符:用户权限
  3. 第5~7个字符:用户组权限
  4. 第8~10个字符,其他用户权限

对于文件权限可分为3种:

权限种类

描述

r

4

可读

w

2

可写

x

1

可执行

示例:

由上信息可以看出:

该文件属于用户test,属于用户组tlgroup

该文件对于用户权限为rw-,即为可读写权限

该文件对于用户组的权限为r--,即为可读权限

该文件对于其他的权限为r--,即为可读权限

shell脚本编码与可执行权限

1) 之前课程使用过的脚本,增强工具的安装脚本:./VBoxLinuxAddtions.run

2) shell脚本编写,实现shell脚本输出HelloWorld

新建start.sh,touch start.sh。编写shell源码:

#!/bin/bash

echo “HelloWorld!”

3) 给脚本赋值可执行权限,chmod 744 start.sh

4) shell脚本执行 

A、在当前路径下执行,cd到start.sh所在的目录中,执行./start.sh

B、还可以使用绝对路径执行,/root/tianliang/start.sh

  1. sh脚本直接调用执行

  1. source执行脚本,直接影响当前会话窗口

2.常用命令

  1. chmod

chmod:更改文件、文件夹权限。权限设置分2种,分别可以使用数字和符号。语法:chmod [-R] 权限 文件/目录

选项与参数:-R递归的持续更改,连同子目录下的所有文件一起更改

数字修改法

使用ll input.txt查看文件原来权限,使用chmod 755 input.txt更改权限,修改后,使用ll input.txt再次查看文件权限。

符号修改法

使用ll input.txt查看原始权限,使用chmod u=rwx,g=rwx,o=rwx input.txt,修改后再次使用ll input.txt查看文件权限。

  1. chown

chown:更改文件所有者。此命令是change owner的简称,不过要被改变的用户要在/etc/passwd文件内存在才行,否则会报错,一般为root用户调用较多。语法:chown [-R] 用户 文件/目录 或者 chown [-R] 用户:组名 文件/目录选项与参数:-R递归参数(recursive)的级联更改,连同子目录下的所有文件一起更改。

更改文件的用户名和所属组:chown test:test input.txt

更改文件夹的所属用户名:chown -R test data

更改文件夹所属的用户组:chown -R :test data

  1. chgrp

chgrp:更改文件所属用户组。此命令是change group的简称,要求被改变的组名要在/etc/group文件内存在才行,否则会报错。

语法:chgrp [-R] 用户组 文件/目录

选项与参数:-R 递归的级联更改,连同子目录下的所有文件一起更改。

递归更改文件夹所属用户组:chgrp -R test data

四.系统常用服务与管理

1.常用服务

  1. 防火墙服务-开启与关停

service iptables restart/stop/status

Centos7.x: 修改为firewalld服务

Centos7.x: 将service服务修改为最新的systemctl命令

模板为:systemctl action service_name

如:systemctl status iptables

其它地方与上类同升级修改

  1. ssh服务-开启与关停

service sshd restart/stop

  1. httpd服务-开启与关停

service httpd restart/stop

  1. network服务-开启与关停

service network restart/stop

  1. 网络时间同步服务ntpd-开启与关停

service ntpd restart/stop

Centos7.x: 默认是需要安装才能使用的,并不是自带。

2.永久改变服务的状态-重启机器后依然后效

解决方法

chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行信息。切记chkconfig不是立即自动禁止或者激活一个服务,它只是简单的改变了符号连接。如果想及时生效,必须用service来start和stop。

使用语法

chkconfig [--add][--del][--list][系统服务] 或

chkconfig [--level<等级代号>] [系统服务] [on/off/reset]

参数用法

--add:增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。

--del:删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。

--level<等级代号>指定读系统服务要在哪一个执行等级中开启或关闭。

等级0:表示关机

等级1:单用户模式

等级2:无网络连接的多用户命令行模式

等级3:有网络连接的多用户命令行模式

等级4:不可用

等级5:带图形界面的多用户模式

等级6:重新启动

需要说明的是,level选项可以指定要查看的运行级不一定是当前的运行级。对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。

使用范例

chkconfig --list:列出所有的系统服务

chkconfig --add httpd:增加httpd服务

chkconfig --del httpd:删除httpd服务

chkconfig --level 2345 httpd on:设置httpd在运行级为2、3、4、5的情况下都是开启on的状态。

chkconfig --list mysqld:列出mysqld服务设置的情况

chkconfig mysqld on:设定mysqld在各运行级都为开启

SSH无密码登陆

1.什么是SSH

SSH全称Secure Shell,用来取代传统telnet和R系列命令(rlogin,rsh,rexec等)远程登陆和远程执行命令的工具。

SSH是一种加密协议,不仅在登陆过程中对密码进行加密传送,而且对登陆后执行的命令的数据也进行加密,即使别人在网络上监听并截获了你的数据包,并看不到其中的内容。

SSH服务都是由软件OpenSSH来提供的。绝大多数Linux安装包已自带。

OpenSSH已经是大多数Linux操作系统的标准组件,不需要二次安装。

2.工作原理

2.1 安全验证机制-登陆

密码登陆(账户口令登陆方式)

密钥登陆(公钥私钥非对称登陆方式)

2.2 密码登陆

2.2.1定义

客户端发出授权请求时,服务端要求输入密码进行验证授权。

2.2.2工作原理

  • 客户端向SSH服务器发出请求,服务器将自己的公钥返回给客户端。
  • 客户端用服务器的公钥加密自己的登录密码,再将信息发送给服务器。
  • 服务器接收到客户端传送的密码,用自己的私钥解码。如果结果正确,则同意登录,建立起连接,否则拒绝。

2.2.3运行流程

2.2.4演示示例

客户端A为centos实例172.168.0.3,服务器端B为centos实例172.168.0.4

从客户端A发起链接服务B,接收端服务器端B返回公钥的加密值。

输入密码验证身份

潜在问题有漏洞,中间人可以假扮成服务器,骗取客户端的密码。

2.3 密钥登陆

2.3.1定义

客户端发出授权请求时,服务端根据事先配置的密钥验证身份并授权

2.3.2工作原理

  1. Client-Server打通公钥传递
  • 客户端生成秘钥对,包括公钥、私钥
  • 私钥配置在本地,将公钥发送给服务端
  • 服务端将客户端的公钥加入到授权列表
  1. Client登陆server
  • 当客户端请求登陆服务端时,服务器验证客户端的公钥是否存在,并用公钥加密随机字符串RS生成RE,发送给客户端,进行验证。
  • 客户端用私钥解密RE后生成结果RD,将结果返回给服务器端。
  • 服务器端将RD与之前随机生成的RS比对匹配则授权,否则拒绝。

2.3.3运行流程

 客户端A为centos实例172.168.0.3;服务端B为centos实例172.168.0.4。

  1. 先将client-server打通-公钥传递
  • 客户端生成公钥私钥对

  • 将公钥以安全的方式传递到服务器端

  • 服务端将客户端的公钥加入到授权列表

  1. Client登录Server
  1. 客户端发出远程登录请求:ssh 用户名@服务器主机名或者IP
  2. 服务端查看是否有该客户端的公钥,如果有服务端生成随机字符串,并用公钥加密(就是随机字符串与公钥作某种运算),发送给客户端。
  3. 客户端使用本地的私钥对字符串解密(逆运算)。
  4. 客户端将解密后的字符串结果发送给服务端。
  5. 服务端将解密的字符串与原始字符串匹配,如果相等则验证通过,并授权客户端可以登陆。

3.常用命令与示例

3.1 OpenSSH软件包包含以下命令

ssh-keygen:用于为SSH生成、管理和转换认证密钥,它支持RSA和DSA两种认证密钥。

sshd:SSH服务端程序

sftp-server:SFTP服务端程序(类似FTP但提供数据加密的一种协议)

scp:非交互式sftp-server的客户端,用来向服务器上传/下载文件

sftp:交互式sftp-server客户端,用法和ftp命令一样

slogin:SSH的别名

ssh:SSH协议的客户端程序,用来登入远程系统或者远程执行命令

ssh-add:ssh代理相关程序,用来向SSH代理添加DSA key

ssh-agent:ssh代理程序,ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成。

3.2 命令示例

  1. ssh指定以某用户身份通过某端口登陆到远程某主机IP

ssh -p sshPortNumber yourAccount@ip

  1. 登陆到远程某主机,ip=192.168.1.14

ssh root@192.168.1.14

  1. 不指定用户的时候,默认使用当前正在使用的用户名,如当前使用root用户

ssh 192.168.1.14此命令等同于ssh root@192.168.1.14

  1. 指定登陆端口,有时考虑到安全因素会修改ssh默认22端口,若改成16608

ssh -p 16608 root@192.168.1.14

修改ssh端口的方式:vim /etc/ssh/sshd_config

找到#Port 22,去掉注释,修改成一个大于1024的端口,Port 16608。修改后需要重启ssh服务才能生效:service sshd restart。

  1. scp详解

scp就是secure copy,用来在Linux下进行远程拷贝文件到本地,或者从本地拷贝文件到远程的命令。

从本地文件拷贝至远程

[格式]:scp -P 远程ssh服务端口 本地文件路径 远程主机账户@远程主机IP地址或域名:要拷贝到远程主机的路径

[示例]:scp -P 22 ~/input.txt root@192.168.1.14:~/

从远程拷贝文件到本地

[格式]:scp -P 远程ssh服务端口 远程主机账户@远程主机IP地址或者域名:要拷贝的远程主机文件的路径 本地文件路径

[示例]:scp -P 22 root@192.168.1.14:~/input.txt  ~/

4.SSH建立互信

4.1主机名称介绍

环境中的机器越来越多,通过IP和记忆来区分机器成本太高,需要一个属性来区别与其他计算机。与人的命名相同,计算机也有一个叫做hostname的主机名的属性。

查看机器的hostname:直接输入hostname命令即可

临时修改机器的hostname,重启后失效:hostname 新机器名

永久修改机器的hostname,机器重启后不失效:修改/etc/sysconfig/network中的hostname属性为新的主机名称,最后reboot重启机器生效。

Centos7.x新命令(永久生效):hostnamectl set-hostname new_name

4.2 /etc/hosts文件介绍

DNS:Domain Name System,域名系统,解决域名到IP的对应关系查询问题。

/etc/hosts即本机上的DNS,负责主机名称到IP的对应关系查询服务。

查看默认配置,数据格式为:IP地址 域名地址 主机名称

配置主机名称与IP对应关系,使可以直接使用主机名称进行相关操作。

测试配置域名有效性:

4.3实操练习

目标:两台主机,主机名称分别为master和slave,通过master主机可以ssh登陆slave主机时无需输入密码直接登陆。其中主机master的IP:192.168.0.101,主机slave的IP:192.168.0.198。

操作过程和步骤(默认使用root用户)

  • 解决通过主机名互联互通的问题,分别设置两台主机的hostname名称。0.101主机为master,0.108主机为slave。通过hostnamectl命令修改hostname属性使永久生效。

在master所属IP对应的主机上执行:hostnamectl set-hostname master

在slave所属IP对应的主机上执行:hostnamectl set-hostname slave

  • 设置两台主机中的hosts,均在/etc/hosts添加映射关系。其中192.168.0.101对应master,192.168.0.108对应slave,两台主机的hosts文件的映射配置如下图:

  • 在主机master上分别执行ping master和ping slave,确保能ping通,即确定前边的配置是正确的。

  • 基于主机名通信,完成密钥生成与传递

在主机master上生成公钥和私钥:执行ssh-keygen -t rsa,即采用rsa加密,然后一路回车,就会按照默认选项生成的密钥保存在~/.ssh/id_rsa文件中,生成的公钥保存在~/.ssh/id_rsa.pub中。将主机master的公钥传输到主机slave中:使用scp ~/.ssh/id_rsa.pub root@slave:~/。(或者通过rz和sz命令来实现公钥传递亦可)

在主机slave中将公钥追加到授权列表authorized_keys当中。cat ~/id_rsa.pub >> ~/.ssh/authorized_keys。

  • 登陆验证密钥配置的准确性,由主机master端直接登陆slave端,查看是否可以无密码登陆。ssh root@slave。

若实现slave无密码登陆到master主机,与如上操作类似,互反一下操作即可。

二.添加用户/分组/删除

1.概念介绍

1.1用户分类

Linux是多用户、多任务操作系统,按照用户角色划分:

  1. root用户:系统唯一,是真实的,可以登陆系统,可以操作系统任何文件和命令,拥有最高权限。
  2. 虚拟用户:这类用户也被称之为伪用户或假用户,与真实用户区分开来,这类用户不具有登陆系统的能力,但却是系统运行不可缺少的用户,比如bin、daemon、adm、ftp、ssh、mail等。这类用户都是系统自身拥有的,而非用户认为添加的,当然我们也可以添加虚拟用户。
  3. 普通真实用户:这类用户能登陆系统,但只能操作自己家目录的内容。权限有限,这类用户都是系统管理员自行添加的。本节内容用到的用户为普通用户,用来完成自身需求操作的系统使用账户。在/etc/passwd中可以看到各种账户的存在。

1.2用户组

用户组:具有相同特征的用户的集合体。比如有时我们要让多个用户具有相同的权限,比如查看、修改某一文件或者执行某个命令,这时我们需要用户组,我们把用户都定义到同一用户组,我们通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的所有用户对该文件或目录都具有相同的权限,这是我们通过定义组合修改文件的权限来实现的。

用户与组的对应关系:一对一、多对一、一对多。

2.常用命令

1) 创建用户

useradd tianliang //新建tianliang用户

passwd tianliang //给tianliang用户设置密码

2) 显示用户信息

id user //查看用户的uid、gid、groups属性

3) 创建用户组

groupadd tlgroup //新建tlgroup工作组

useradd -g tlgroup tianliang //新建tianliang用户并增加到tlgroup用户组。

其中-g所属组

4) 给已有的用户增加工作组

usermod -g tlgroup tianliang //修改用户的gid,即修改所属组

gpasswd -a tianliang tlgroup //将用户追加到组tlgroup中

usermod -G tlgroup tianliang //将用户追加到组tlgroup中,tlgroup为非主组

5) 删除用户账号

userdel tianliang //永久删除该用户,不清空其/home/tianliang目录

6) 彻底删除用户:是否删除该用户的家目录等相关文件来区分

userdel -r tianliang //删除tianliang用户及其家目录下的所有数据

7) 从用户组中删除用户

gpasswd -d tianliang tlgroup //从组tlgroup中删除掉tianliang用户

8) 删除用户组

groupdel tlgroup //删除组,但当该组是某个用户的主组的时候,不能删除

9) /etc/passwd文件解析

该文件存储的是操作系统用户信息,该文件为所有用户可见,包含7个字段信息,通过cat /etc/passwd查看如下:

用户名

密码(已经加密)

UID:用户标识符,CentOS操作系统自己使用

UID=0是超级用户。

UID=1~499是伪用户(与系统和程序服务相关)

UID=500~60000为普通用户

GID:组标识,CentOS适用

GID=0是超级组

GID=1~499与系统和程序服务相关的组,如sshd等

GID=500~60000为普通组,即自定义新增的组

用户全名或本地账号

开始目录-家目录

登陆使用的Shell,就是对登陆命令进行解析的工具

三.文件权限管理详解

1.权限介绍

Linux针对文件权限分为三组:用户,用户组,其他。我们使用命令ls -l或者ll,以列表的格式化形式,即可查看文件或者目录对应的权限信息。

文件列表信息的字符意义,文件权限共10个字符,其意义分别为:

  1. 第一个字符,文件类型
    1. d:表示文件目录
    2. -:表示文件
    3. |:表示链接文件
    4. b:表示设备文件里的可供存储的接口设备
    5. c:表示设备文件里面的串行端口设备,如键盘
  2. 第2~4个字符:用户权限
  3. 第5~7个字符:用户组权限
  4. 第8~10个字符,其他用户权限

对于文件权限可分为3种:

权限种类

描述

r

4

可读

w

2

可写

x

1

可执行

示例:

由上信息可以看出:

该文件属于用户test,属于用户组tlgroup

该文件对于用户权限为rw-,即为可读写权限

该文件对于用户组的权限为r--,即为可读权限

该文件对于其他的权限为r--,即为可读权限

shell脚本编码与可执行权限

1) 之前课程使用过的脚本,增强工具的安装脚本:./VBoxLinuxAddtions.run

2) shell脚本编写,实现shell脚本输出HelloWorld

新建start.sh,touch start.sh。编写shell源码:

#!/bin/bash

echo “HelloWorld!”

3) 给脚本赋值可执行权限,chmod 744 start.sh

4) shell脚本执行 

A、在当前路径下执行,cd到start.sh所在的目录中,执行./start.sh

B、还可以使用绝对路径执行,/root/tianliang/start.sh

  1. sh脚本直接调用执行

  1. source执行脚本,直接影响当前会话窗口

2.常用命令

  1. chmod

chmod:更改文件、文件夹权限。权限设置分2种,分别可以使用数字和符号。语法:chmod [-R] 权限 文件/目录

选项与参数:-R递归的持续更改,连同子目录下的所有文件一起更改

数字修改法

使用ll input.txt查看文件原来权限,使用chmod 755 input.txt更改权限,修改后,使用ll input.txt再次查看文件权限。

符号修改法

使用ll input.txt查看原始权限,使用chmod u=rwx,g=rwx,o=rwx input.txt,修改后再次使用ll input.txt查看文件权限。

  1. chown

chown:更改文件所有者。此命令是change owner的简称,不过要被改变的用户要在/etc/passwd文件内存在才行,否则会报错,一般为root用户调用较多。语法:chown [-R] 用户 文件/目录 或者 chown [-R] 用户:组名 文件/目录选项与参数:-R递归参数(recursive)的级联更改,连同子目录下的所有文件一起更改。

更改文件的用户名和所属组:chown test:test input.txt

更改文件夹的所属用户名:chown -R test data

更改文件夹所属的用户组:chown -R :test data

  1. chgrp

chgrp:更改文件所属用户组。此命令是change group的简称,要求被改变的组名要在/etc/group文件内存在才行,否则会报错。

语法:chgrp [-R] 用户组 文件/目录

选项与参数:-R 递归的级联更改,连同子目录下的所有文件一起更改。

递归更改文件夹所属用户组:chgrp -R test data

四.系统常用服务与管理

1.常用服务

  1. 防火墙服务-开启与关停

service iptables restart/stop/status

Centos7.x: 修改为firewalld服务

Centos7.x: 将service服务修改为最新的systemctl命令

模板为:systemctl action service_name

如:systemctl status iptables

其它地方与上类同升级修改

  1. ssh服务-开启与关停

service sshd restart/stop

  1. httpd服务-开启与关停

service httpd restart/stop

  1. network服务-开启与关停

service network restart/stop

  1. 网络时间同步服务ntpd-开启与关停

service ntpd restart/stop

Centos7.x: 默认是需要安装才能使用的,并不是自带。

2.永久改变服务的状态-重启机器后依然后效

解决方法

chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行信息。切记chkconfig不是立即自动禁止或者激活一个服务,它只是简单的改变了符号连接。如果想及时生效,必须用service来start和stop。

使用语法

chkconfig [--add][--del][--list][系统服务] 或

chkconfig [--level<等级代号>] [系统服务] [on/off/reset]

参数用法

--add:增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。

--del:删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。

--level<等级代号>指定读系统服务要在哪一个执行等级中开启或关闭。

等级0:表示关机

等级1:单用户模式

等级2:无网络连接的多用户命令行模式

等级3:有网络连接的多用户命令行模式

等级4:不可用

等级5:带图形界面的多用户模式

等级6:重新启动

需要说明的是,level选项可以指定要查看的运行级不一定是当前的运行级。对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。

使用范例

chkconfig --list:列出所有的系统服务

chkconfig --add httpd:增加httpd服务

chkconfig --del httpd:删除httpd服务

chkconfig --level 2345 httpd on:设置httpd在运行级为2、3、4、5的情况下都是开启on的状态。

chkconfig --list mysqld:列出mysqld服务设置的情况

chkconfig mysqld on:设定mysqld在各运行级都为开启

SSH无密码登陆

1.什么是SSH

SSH全称Secure Shell,用来取代传统telnet和R系列命令(rlogin,rsh,rexec等)远程登陆和远程执行命令的工具。

SSH是一种加密协议,不仅在登陆过程中对密码进行加密传送,而且对登陆后执行的命令的数据也进行加密,即使别人在网络上监听并截获了你的数据包,并看不到其中的内容。

SSH服务都是由软件OpenSSH来提供的。绝大多数Linux安装包已自带。

OpenSSH已经是大多数Linux操作系统的标准组件,不需要二次安装。

2.工作原理

2.1 安全验证机制-登陆

密码登陆(账户口令登陆方式)

密钥登陆(公钥私钥非对称登陆方式)

2.2 密码登陆

2.2.1定义

客户端发出授权请求时,服务端要求输入密码进行验证授权。

2.2.2工作原理

  • 客户端向SSH服务器发出请求,服务器将自己的公钥返回给客户端。
  • 客户端用服务器的公钥加密自己的登录密码,再将信息发送给服务器。
  • 服务器接收到客户端传送的密码,用自己的私钥解码。如果结果正确,则同意登录,建立起连接,否则拒绝。

2.2.3运行流程

2.2.4演示示例

客户端A为centos实例172.168.0.3,服务器端B为centos实例172.168.0.4

从客户端A发起链接服务B,接收端服务器端B返回公钥的加密值。

输入密码验证身份

潜在问题有漏洞,中间人可以假扮成服务器,骗取客户端的密码。

2.3 密钥登陆

2.3.1定义

客户端发出授权请求时,服务端根据事先配置的密钥验证身份并授权

2.3.2工作原理

  1. Client-Server打通公钥传递
  • 客户端生成秘钥对,包括公钥、私钥
  • 私钥配置在本地,将公钥发送给服务端
  • 服务端将客户端的公钥加入到授权列表
  1. Client登陆server
  • 当客户端请求登陆服务端时,服务器验证客户端的公钥是否存在,并用公钥加密随机字符串RS生成RE,发送给客户端,进行验证。
  • 客户端用私钥解密RE后生成结果RD,将结果返回给服务器端。
  • 服务器端将RD与之前随机生成的RS比对匹配则授权,否则拒绝。

2.3.3运行流程

 客户端A为centos实例172.168.0.3;服务端B为centos实例172.168.0.4。

  1. 先将client-server打通-公钥传递
  • 客户端生成公钥私钥对

  • 将公钥以安全的方式传递到服务器端

  • 服务端将客户端的公钥加入到授权列表

  1. Client登录Server
  1. 客户端发出远程登录请求:ssh 用户名@服务器主机名或者IP
  2. 服务端查看是否有该客户端的公钥,如果有服务端生成随机字符串,并用公钥加密(就是随机字符串与公钥作某种运算),发送给客户端。
  3. 客户端使用本地的私钥对字符串解密(逆运算)。
  4. 客户端将解密后的字符串结果发送给服务端。
  5. 服务端将解密的字符串与原始字符串匹配,如果相等则验证通过,并授权客户端可以登陆。

3.常用命令与示例

3.1 OpenSSH软件包包含以下命令

ssh-keygen:用于为SSH生成、管理和转换认证密钥,它支持RSA和DSA两种认证密钥。

sshd:SSH服务端程序

sftp-server:SFTP服务端程序(类似FTP但提供数据加密的一种协议)

scp:非交互式sftp-server的客户端,用来向服务器上传/下载文件

sftp:交互式sftp-server客户端,用法和ftp命令一样

slogin:SSH的别名

ssh:SSH协议的客户端程序,用来登入远程系统或者远程执行命令

ssh-add:ssh代理相关程序,用来向SSH代理添加DSA key

ssh-agent:ssh代理程序,ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成。

3.2 命令示例

  1. ssh指定以某用户身份通过某端口登陆到远程某主机IP

ssh -p sshPortNumber yourAccount@ip

  1. 登陆到远程某主机,ip=192.168.1.14

ssh root@192.168.1.14

  1. 不指定用户的时候,默认使用当前正在使用的用户名,如当前使用root用户

ssh 192.168.1.14此命令等同于ssh root@192.168.1.14

  1. 指定登陆端口,有时考虑到安全因素会修改ssh默认22端口,若改成16608

ssh -p 16608 root@192.168.1.14

修改ssh端口的方式:vim /etc/ssh/sshd_config

找到#Port 22,去掉注释,修改成一个大于1024的端口,Port 16608。修改后需要重启ssh服务才能生效:service sshd restart。

  1. scp详解

scp就是secure copy,用来在Linux下进行远程拷贝文件到本地,或者从本地拷贝文件到远程的命令。

从本地文件拷贝至远程

[格式]:scp -P 远程ssh服务端口 本地文件路径 远程主机账户@远程主机IP地址或域名:要拷贝到远程主机的路径

[示例]:scp -P 22 ~/input.txt root@192.168.1.14:~/

从远程拷贝文件到本地

[格式]:scp -P 远程ssh服务端口 远程主机账户@远程主机IP地址或者域名:要拷贝的远程主机文件的路径 本地文件路径

[示例]:scp -P 22 root@192.168.1.14:~/input.txt  ~/

4.SSH建立互信

4.1主机名称介绍

环境中的机器越来越多,通过IP和记忆来区分机器成本太高,需要一个属性来区别与其他计算机。与人的命名相同,计算机也有一个叫做hostname的主机名的属性。

查看机器的hostname:直接输入hostname命令即可

临时修改机器的hostname,重启后失效:hostname 新机器名

永久修改机器的hostname,机器重启后不失效:修改/etc/sysconfig/network中的hostname属性为新的主机名称,最后reboot重启机器生效。

Centos7.x新命令(永久生效):hostnamectl set-hostname new_name

4.2 /etc/hosts文件介绍

DNS:Domain Name System,域名系统,解决域名到IP的对应关系查询问题。

/etc/hosts即本机上的DNS,负责主机名称到IP的对应关系查询服务。

查看默认配置,数据格式为:IP地址 域名地址 主机名称

配置主机名称与IP对应关系,使可以直接使用主机名称进行相关操作。

测试配置域名有效性:

4.3实操练习

目标:两台主机,主机名称分别为master和slave,通过master主机可以ssh登陆slave主机时无需输入密码直接登陆。其中主机master的IP:192.168.0.101,主机slave的IP:192.168.0.198。

操作过程和步骤(默认使用root用户)

  • 解决通过主机名互联互通的问题,分别设置两台主机的hostname名称。0.101主机为master,0.108主机为slave。通过hostnamectl命令修改hostname属性使永久生效。

在master所属IP对应的主机上执行:hostnamectl set-hostname master

在slave所属IP对应的主机上执行:hostnamectl set-hostname slave

  • 设置两台主机中的hosts,均在/etc/hosts添加映射关系。其中192.168.0.101对应master,192.168.0.108对应slave,两台主机的hosts文件的映射配置如下图:

  • 在主机master上分别执行ping master和ping slave,确保能ping通,即确定前边的配置是正确的。

  • 基于主机名通信,完成密钥生成与传递

在主机master上生成公钥和私钥:执行ssh-keygen -t rsa,即采用rsa加密,然后一路回车,就会按照默认选项生成的密钥保存在~/.ssh/id_rsa文件中,生成的公钥保存在~/.ssh/id_rsa.pub中。将主机master的公钥传输到主机slave中:使用scp ~/.ssh/id_rsa.pub root@slave:~/。(或者通过rz和sz命令来实现公钥传递亦可)

在主机slave中将公钥追加到授权列表authorized_keys当中。cat ~/id_rsa.pub >> ~/.ssh/authorized_keys。

  • 登陆验证密钥配置的准确性,由主机master端直接登陆slave端,查看是否可以无密码登陆。ssh root@slave。

若实现slave无密码登陆到master主机,与如上操作类似,互反一下操作即可。

二.添加用户/分组/删除

1.概念介绍

1.1用户分类

Linux是多用户、多任务操作系统,按照用户角色划分:

  1. root用户:系统唯一,是真实的,可以登陆系统,可以操作系统任何文件和命令,拥有最高权限。
  2. 虚拟用户:这类用户也被称之为伪用户或假用户,与真实用户区分开来,这类用户不具有登陆系统的能力,但却是系统运行不可缺少的用户,比如bin、daemon、adm、ftp、ssh、mail等。这类用户都是系统自身拥有的,而非用户认为添加的,当然我们也可以添加虚拟用户。
  3. 普通真实用户:这类用户能登陆系统,但只能操作自己家目录的内容。权限有限,这类用户都是系统管理员自行添加的。本节内容用到的用户为普通用户,用来完成自身需求操作的系统使用账户。在/etc/passwd中可以看到各种账户的存在。

1.2用户组

用户组:具有相同特征的用户的集合体。比如有时我们要让多个用户具有相同的权限,比如查看、修改某一文件或者执行某个命令,这时我们需要用户组,我们把用户都定义到同一用户组,我们通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的所有用户对该文件或目录都具有相同的权限,这是我们通过定义组合修改文件的权限来实现的。

用户与组的对应关系:一对一、多对一、一对多。

2.常用命令

1) 创建用户

useradd tianliang //新建tianliang用户

passwd tianliang //给tianliang用户设置密码

2) 显示用户信息

id user //查看用户的uid、gid、groups属性

3) 创建用户组

groupadd tlgroup //新建tlgroup工作组

useradd -g tlgroup tianliang //新建tianliang用户并增加到tlgroup用户组。

其中-g所属组

4) 给已有的用户增加工作组

usermod -g tlgroup tianliang //修改用户的gid,即修改所属组

gpasswd -a tianliang tlgroup //将用户追加到组tlgroup中

usermod -G tlgroup tianliang //将用户追加到组tlgroup中,tlgroup为非主组

5) 删除用户账号

userdel tianliang //永久删除该用户,不清空其/home/tianliang目录

6) 彻底删除用户:是否删除该用户的家目录等相关文件来区分

userdel -r tianliang //删除tianliang用户及其家目录下的所有数据

7) 从用户组中删除用户

gpasswd -d tianliang tlgroup //从组tlgroup中删除掉tianliang用户

8) 删除用户组

groupdel tlgroup //删除组,但当该组是某个用户的主组的时候,不能删除

9) /etc/passwd文件解析

该文件存储的是操作系统用户信息,该文件为所有用户可见,包含7个字段信息,通过cat /etc/passwd查看如下:

用户名

密码(已经加密)

UID:用户标识符,CentOS操作系统自己使用

UID=0是超级用户。

UID=1~499是伪用户(与系统和程序服务相关)

UID=500~60000为普通用户

GID:组标识,CentOS适用

GID=0是超级组

GID=1~499与系统和程序服务相关的组,如sshd等

GID=500~60000为普通组,即自定义新增的组

用户全名或本地账号

开始目录-家目录

登陆使用的Shell,就是对登陆命令进行解析的工具

三.文件权限管理详解

1.权限介绍

Linux针对文件权限分为三组:用户,用户组,其他。我们使用命令ls -l或者ll,以列表的格式化形式,即可查看文件或者目录对应的权限信息。

文件列表信息的字符意义,文件权限共10个字符,其意义分别为:

  1. 第一个字符,文件类型
    1. d:表示文件目录
    2. -:表示文件
    3. |:表示链接文件
    4. b:表示设备文件里的可供存储的接口设备
    5. c:表示设备文件里面的串行端口设备,如键盘
  2. 第2~4个字符:用户权限
  3. 第5~7个字符:用户组权限
  4. 第8~10个字符,其他用户权限

对于文件权限可分为3种:

权限种类

描述

r

4

可读

w

2

可写

x

1

可执行

示例:

由上信息可以看出:

该文件属于用户test,属于用户组tlgroup

该文件对于用户权限为rw-,即为可读写权限

该文件对于用户组的权限为r--,即为可读权限

该文件对于其他的权限为r--,即为可读权限

shell脚本编码与可执行权限

1) 之前课程使用过的脚本,增强工具的安装脚本:./VBoxLinuxAddtions.run

2) shell脚本编写,实现shell脚本输出HelloWorld

新建start.sh,touch start.sh。编写shell源码:

#!/bin/bash

echo “HelloWorld!”

3) 给脚本赋值可执行权限,chmod 744 start.sh

4) shell脚本执行 

A、在当前路径下执行,cd到start.sh所在的目录中,执行./start.sh

B、还可以使用绝对路径执行,/root/tianliang/start.sh

  1. sh脚本直接调用执行

  1. source执行脚本,直接影响当前会话窗口

2.常用命令

  1. chmod

chmod:更改文件、文件夹权限。权限设置分2种,分别可以使用数字和符号。语法:chmod [-R] 权限 文件/目录

选项与参数:-R递归的持续更改,连同子目录下的所有文件一起更改

数字修改法

使用ll input.txt查看文件原来权限,使用chmod 755 input.txt更改权限,修改后,使用ll input.txt再次查看文件权限。

符号修改法

使用ll input.txt查看原始权限,使用chmod u=rwx,g=rwx,o=rwx input.txt,修改后再次使用ll input.txt查看文件权限。

  1. chown

chown:更改文件所有者。此命令是change owner的简称,不过要被改变的用户要在/etc/passwd文件内存在才行,否则会报错,一般为root用户调用较多。语法:chown [-R] 用户 文件/目录 或者 chown [-R] 用户:组名 文件/目录选项与参数:-R递归参数(recursive)的级联更改,连同子目录下的所有文件一起更改。

更改文件的用户名和所属组:chown test:test input.txt

更改文件夹的所属用户名:chown -R test data

更改文件夹所属的用户组:chown -R :test data

  1. chgrp

chgrp:更改文件所属用户组。此命令是change group的简称,要求被改变的组名要在/etc/group文件内存在才行,否则会报错。

语法:chgrp [-R] 用户组 文件/目录

选项与参数:-R 递归的级联更改,连同子目录下的所有文件一起更改。

递归更改文件夹所属用户组:chgrp -R test data

四.系统常用服务与管理

1.常用服务

  1. 防火墙服务-开启与关停

service iptables restart/stop/status

Centos7.x: 修改为firewalld服务

Centos7.x: 将service服务修改为最新的systemctl命令

模板为:systemctl action service_name

如:systemctl status iptables

其它地方与上类同升级修改

  1. ssh服务-开启与关停

service sshd restart/stop

  1. httpd服务-开启与关停

service httpd restart/stop

  1. network服务-开启与关停

service network restart/stop

  1. 网络时间同步服务ntpd-开启与关停

service ntpd restart/stop

Centos7.x: 默认是需要安装才能使用的,并不是自带。

2.永久改变服务的状态-重启机器后依然后效

解决方法

chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行信息。切记chkconfig不是立即自动禁止或者激活一个服务,它只是简单的改变了符号连接。如果想及时生效,必须用service来start和stop。

使用语法

chkconfig [--add][--del][--list][系统服务] 或

chkconfig [--level<等级代号>] [系统服务] [on/off/reset]

参数用法

--add:增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。

--del:删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。

--level<等级代号>指定读系统服务要在哪一个执行等级中开启或关闭。

等级0:表示关机

等级1:单用户模式

等级2:无网络连接的多用户命令行模式

等级3:有网络连接的多用户命令行模式

等级4:不可用

等级5:带图形界面的多用户模式

等级6:重新启动

需要说明的是,level选项可以指定要查看的运行级不一定是当前的运行级。对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。

使用范例

chkconfig --list:列出所有的系统服务

chkconfig --add httpd:增加httpd服务

chkconfig --del httpd:删除httpd服务

chkconfig --level 2345 httpd on:设置httpd在运行级为2、3、4、5的情况下都是开启on的状态。

chkconfig --list mysqld:列出mysqld服务设置的情况

chkconfig mysqld on:设定mysqld在各运行级都为开启

  • 在集群中为每个用户新增专属目录,家目录均在/user目录中,如吴贺(wuhe),则其hdfs家目录为/user/wuhe
  • 修改家目录的owner为wuhe,通过hdfs dfs -chown来实现

脚本为: addHadoopUser.sh,注:首先从root切换到hdfs用户后进行以下脚本执行,在任意一个可切换到hdfs用户的入口机下执行

#! /bin/sh

hdfs dfs -mkdir /user/$1

hdfs dfs -chown -R $1 /user/$1

3、测试

  • 已添加的各新用户,登陆自己的用户名和密码,使用hdfs、yarn、hive等命令进行测试即可。
    • Hdfs命令如下

    • Yarn

  • Linux的人机交互的自动化实现说明
    • 常规的人机交互: 人和机器之间进行你来我往
    • Linux的自动的问答式人机交互
      • expect编程
        • 通过人为编程,监控机器反馈给用户的消息,当返回的消息与人为设定的监控的消息条件相等匹配时,由expect编程模块自动发送人为需要输入的内容,从而实现程序与程序之间的交互。

3、操作步骤

  1. 首先实现通过xshell登陆到跳板机,配置如下
    1. 填写链接主机信息

    1. 填写用户名和密码

  1. 配置二次登陆脚本
    1. 添加登入跳板机后,向入口机发起登陆的命令,
      1. 点击如下图的添加命令

      1. 填入expect脚本预期的条件内容和满足条件后的执行命令

    1. 再次点击添加按钮,加入执行ssh用户命令发起登陆后,满足什么条件后再执行输入密码的命令

    1. 全部配置完成后的结果如下图

    1. 配置完成后,回到主会话窗口,直接点击会话登陆验证成功与否。
      1. 为新会话窗口起个名字即可

  1. 登陆成功后的效果,如下图所示

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值