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工作原理
- Client-Server打通公钥传递
- 客户端生成秘钥对,包括公钥、私钥
- 私钥配置在本地,将公钥发送给服务端
- 服务端将客户端的公钥加入到授权列表
- Client登陆server
- 当客户端请求登陆服务端时,服务器验证客户端的公钥是否存在,并用公钥加密随机字符串RS生成RE,发送给客户端,进行验证。
- 客户端用私钥解密RE后生成结果RD,将结果返回给服务器端。
- 服务器端将RD与之前随机生成的RS比对匹配则授权,否则拒绝。
2.3.3运行流程
客户端A为centos实例172.168.0.3;服务端B为centos实例172.168.0.4。
- 先将client-server打通-公钥传递
- 客户端生成公钥私钥对
- 将公钥以安全的方式传递到服务器端
- 服务端将客户端的公钥加入到授权列表
- Client登录Server
- 客户端发出远程登录请求:ssh 用户名@服务器主机名或者IP
- 服务端查看是否有该客户端的公钥,如果有服务端生成随机字符串,并用公钥加密(就是随机字符串与公钥作某种运算),发送给客户端。
- 客户端使用本地的私钥对字符串解密(逆运算)。
- 客户端将解密后的字符串结果发送给服务端。
- 服务端将解密的字符串与原始字符串匹配,如果相等则验证通过,并授权客户端可以登陆。
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 命令示例
- ssh指定以某用户身份通过某端口登陆到远程某主机IP
ssh -p sshPortNumber yourAccount@ip
- 登陆到远程某主机,ip=192.168.1.14
ssh root@192.168.1.14
- 不指定用户的时候,默认使用当前正在使用的用户名,如当前使用root用户
ssh 192.168.1.14此命令等同于ssh root@192.168.1.14
- 指定登陆端口,有时考虑到安全因素会修改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。
- 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是多用户、多任务操作系统,按照用户角色划分:
- root用户:系统唯一,是真实的,可以登陆系统,可以操作系统任何文件和命令,拥有最高权限。
- 虚拟用户:这类用户也被称之为伪用户或假用户,与真实用户区分开来,这类用户不具有登陆系统的能力,但却是系统运行不可缺少的用户,比如bin、daemon、adm、ftp、ssh、mail等。这类用户都是系统自身拥有的,而非用户认为添加的,当然我们也可以添加虚拟用户。
- 普通真实用户:这类用户能登陆系统,但只能操作自己家目录的内容。权限有限,这类用户都是系统管理员自行添加的。本节内容用到的用户为普通用户,用来完成自身需求操作的系统使用账户。在/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个字符,其意义分别为:
- 第一个字符,文件类型
- d:表示文件目录
- -:表示文件
- |:表示链接文件
- b:表示设备文件里的可供存储的接口设备
- c:表示设备文件里面的串行端口设备,如键盘
- 第2~4个字符:用户权限
- 第5~7个字符:用户组权限
- 第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
- sh脚本直接调用执行
- source执行脚本,直接影响当前会话窗口
2.常用命令
- 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查看文件权限。
- 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
- chgrp
chgrp:更改文件所属用户组。此命令是change group的简称,要求被改变的组名要在/etc/group文件内存在才行,否则会报错。
语法:chgrp [-R] 用户组 文件/目录
选项与参数:-R 递归的级联更改,连同子目录下的所有文件一起更改。
递归更改文件夹所属用户组:chgrp -R test data
四.系统常用服务与管理
1.常用服务
- 防火墙服务-开启与关停
service iptables restart/stop/status
Centos7.x: 修改为firewalld服务
Centos7.x: 将service服务修改为最新的systemctl命令
模板为:systemctl action service_name
如:systemctl status iptables
其它地方与上类同升级修改
- ssh服务-开启与关停
service sshd restart/stop
- httpd服务-开启与关停
service httpd restart/stop
- network服务-开启与关停
service network restart/stop
- 网络时间同步服务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工作原理
- Client-Server打通公钥传递
- 客户端生成秘钥对,包括公钥、私钥
- 私钥配置在本地,将公钥发送给服务端
- 服务端将客户端的公钥加入到授权列表
- Client登陆server
- 当客户端请求登陆服务端时,服务器验证客户端的公钥是否存在,并用公钥加密随机字符串RS生成RE,发送给客户端,进行验证。
- 客户端用私钥解密RE后生成结果RD,将结果返回给服务器端。
- 服务器端将RD与之前随机生成的RS比对匹配则授权,否则拒绝。
2.3.3运行流程
客户端A为centos实例172.168.0.3;服务端B为centos实例172.168.0.4。
- 先将client-server打通-公钥传递
- 客户端生成公钥私钥对
- 将公钥以安全的方式传递到服务器端
- 服务端将客户端的公钥加入到授权列表
- Client登录Server
- 客户端发出远程登录请求:ssh 用户名@服务器主机名或者IP
- 服务端查看是否有该客户端的公钥,如果有服务端生成随机字符串,并用公钥加密(就是随机字符串与公钥作某种运算),发送给客户端。
- 客户端使用本地的私钥对字符串解密(逆运算)。
- 客户端将解密后的字符串结果发送给服务端。
- 服务端将解密的字符串与原始字符串匹配,如果相等则验证通过,并授权客户端可以登陆。
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 命令示例
- ssh指定以某用户身份通过某端口登陆到远程某主机IP
ssh -p sshPortNumber yourAccount@ip
- 登陆到远程某主机,ip=192.168.1.14
ssh root@192.168.1.14
- 不指定用户的时候,默认使用当前正在使用的用户名,如当前使用root用户
ssh 192.168.1.14此命令等同于ssh root@192.168.1.14
- 指定登陆端口,有时考虑到安全因素会修改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。
- 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是多用户、多任务操作系统,按照用户角色划分:
- root用户:系统唯一,是真实的,可以登陆系统,可以操作系统任何文件和命令,拥有最高权限。
- 虚拟用户:这类用户也被称之为伪用户或假用户,与真实用户区分开来,这类用户不具有登陆系统的能力,但却是系统运行不可缺少的用户,比如bin、daemon、adm、ftp、ssh、mail等。这类用户都是系统自身拥有的,而非用户认为添加的,当然我们也可以添加虚拟用户。
- 普通真实用户:这类用户能登陆系统,但只能操作自己家目录的内容。权限有限,这类用户都是系统管理员自行添加的。本节内容用到的用户为普通用户,用来完成自身需求操作的系统使用账户。在/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个字符,其意义分别为:
- 第一个字符,文件类型
- d:表示文件目录
- -:表示文件
- |:表示链接文件
- b:表示设备文件里的可供存储的接口设备
- c:表示设备文件里面的串行端口设备,如键盘
- 第2~4个字符:用户权限
- 第5~7个字符:用户组权限
- 第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
- sh脚本直接调用执行
- source执行脚本,直接影响当前会话窗口
2.常用命令
- 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查看文件权限。
- 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
- chgrp
chgrp:更改文件所属用户组。此命令是change group的简称,要求被改变的组名要在/etc/group文件内存在才行,否则会报错。
语法:chgrp [-R] 用户组 文件/目录
选项与参数:-R 递归的级联更改,连同子目录下的所有文件一起更改。
递归更改文件夹所属用户组:chgrp -R test data
四.系统常用服务与管理
1.常用服务
- 防火墙服务-开启与关停
service iptables restart/stop/status
Centos7.x: 修改为firewalld服务
Centos7.x: 将service服务修改为最新的systemctl命令
模板为:systemctl action service_name
如:systemctl status iptables
其它地方与上类同升级修改
- ssh服务-开启与关停
service sshd restart/stop
- httpd服务-开启与关停
service httpd restart/stop
- network服务-开启与关停
service network restart/stop
- 网络时间同步服务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工作原理
- Client-Server打通公钥传递
- 客户端生成秘钥对,包括公钥、私钥
- 私钥配置在本地,将公钥发送给服务端
- 服务端将客户端的公钥加入到授权列表
- Client登陆server
- 当客户端请求登陆服务端时,服务器验证客户端的公钥是否存在,并用公钥加密随机字符串RS生成RE,发送给客户端,进行验证。
- 客户端用私钥解密RE后生成结果RD,将结果返回给服务器端。
- 服务器端将RD与之前随机生成的RS比对匹配则授权,否则拒绝。
2.3.3运行流程
客户端A为centos实例172.168.0.3;服务端B为centos实例172.168.0.4。
- 先将client-server打通-公钥传递
- 客户端生成公钥私钥对
- 将公钥以安全的方式传递到服务器端
- 服务端将客户端的公钥加入到授权列表
- Client登录Server
- 客户端发出远程登录请求:ssh 用户名@服务器主机名或者IP
- 服务端查看是否有该客户端的公钥,如果有服务端生成随机字符串,并用公钥加密(就是随机字符串与公钥作某种运算),发送给客户端。
- 客户端使用本地的私钥对字符串解密(逆运算)。
- 客户端将解密后的字符串结果发送给服务端。
- 服务端将解密的字符串与原始字符串匹配,如果相等则验证通过,并授权客户端可以登陆。
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 命令示例
- ssh指定以某用户身份通过某端口登陆到远程某主机IP
ssh -p sshPortNumber yourAccount@ip
- 登陆到远程某主机,ip=192.168.1.14
ssh root@192.168.1.14
- 不指定用户的时候,默认使用当前正在使用的用户名,如当前使用root用户
ssh 192.168.1.14此命令等同于ssh root@192.168.1.14
- 指定登陆端口,有时考虑到安全因素会修改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。
- 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是多用户、多任务操作系统,按照用户角色划分:
- root用户:系统唯一,是真实的,可以登陆系统,可以操作系统任何文件和命令,拥有最高权限。
- 虚拟用户:这类用户也被称之为伪用户或假用户,与真实用户区分开来,这类用户不具有登陆系统的能力,但却是系统运行不可缺少的用户,比如bin、daemon、adm、ftp、ssh、mail等。这类用户都是系统自身拥有的,而非用户认为添加的,当然我们也可以添加虚拟用户。
- 普通真实用户:这类用户能登陆系统,但只能操作自己家目录的内容。权限有限,这类用户都是系统管理员自行添加的。本节内容用到的用户为普通用户,用来完成自身需求操作的系统使用账户。在/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个字符,其意义分别为:
- 第一个字符,文件类型
- d:表示文件目录
- -:表示文件
- |:表示链接文件
- b:表示设备文件里的可供存储的接口设备
- c:表示设备文件里面的串行端口设备,如键盘
- 第2~4个字符:用户权限
- 第5~7个字符:用户组权限
- 第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
- sh脚本直接调用执行
- source执行脚本,直接影响当前会话窗口
2.常用命令
- 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查看文件权限。
- 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
- chgrp
chgrp:更改文件所属用户组。此命令是change group的简称,要求被改变的组名要在/etc/group文件内存在才行,否则会报错。
语法:chgrp [-R] 用户组 文件/目录
选项与参数:-R 递归的级联更改,连同子目录下的所有文件一起更改。
递归更改文件夹所属用户组:chgrp -R test data
四.系统常用服务与管理
1.常用服务
- 防火墙服务-开启与关停
service iptables restart/stop/status
Centos7.x: 修改为firewalld服务
Centos7.x: 将service服务修改为最新的systemctl命令
模板为:systemctl action service_name
如:systemctl status iptables
其它地方与上类同升级修改
- ssh服务-开启与关停
service sshd restart/stop
- httpd服务-开启与关停
service httpd restart/stop
- network服务-开启与关停
service network restart/stop
- 网络时间同步服务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编程模块自动发送人为需要输入的内容,从而实现程序与程序之间的交互。
- expect编程
3、操作步骤
- 首先实现通过xshell登陆到跳板机,配置如下
- 填写链接主机信息
-
- 填写用户名和密码
- 配置二次登陆脚本
- 添加登入跳板机后,向入口机发起登陆的命令,
- 点击如下图的添加命令
- 添加登入跳板机后,向入口机发起登陆的命令,
-
-
- 填入expect脚本预期的条件内容和满足条件后的执行命令
-
-
- 再次点击添加按钮,加入执行ssh用户命令发起登陆后,满足什么条件后再执行输入密码的命令
-
- 全部配置完成后的结果如下图
-
- 配置完成后,回到主会话窗口,直接点击会话登陆验证成功与否。
- 为新会话窗口起个名字即可
- 配置完成后,回到主会话窗口,直接点击会话登陆验证成功与否。
- 登陆成功后的效果,如下图所示