1.在生成环境中经常要修改服务器的密码,以保证安全,可以用shell编写脚本。

用ssh直接修改对方服务器的密码可以用ssh 用户名@登录IP 后跟命令就可以实现,但是需要管理员输入密码后才能操作,为了不让管理员手动进行输入所以用expect解决此方案,由于expect是单独的命令在/bin/bash是无法使用的,所以必须要嵌套使用,<<代表以什么结尾,EOF代表以EOF结尾,spawn输入登录的命令行,expect为期待着问什么,send代表发送需要的内容,\r代表为回车符。

1台服务器修改密码的方法

shell 脚本中 echo mysql密码 shell脚本输入ssh密码_服务器

shell 脚本中 echo mysql密码 shell脚本输入ssh密码_服务器端_02

多台服务器并且在全国各地IP地址都是不同的密码修改,专门编写存放IP地址的文件,然后在脚本中调用该文件。

shell 脚本中 echo mysql密码 shell脚本输入ssh密码_运维_03

2.ssh输入时出现一下错误的提示,无法ssh登录到服务器端,提示如下,说明对端服务器的验证被删除。

shell 脚本中 echo mysql密码 shell脚本输入ssh密码_服务器_04

服务器端删除验证的方法

shell 脚本中 echo mysql密码 shell脚本输入ssh密码_shell_05

服务器端解决的方案

shell 脚本中 echo mysql密码 shell脚本输入ssh密码_开发工具_06

解决ssh输入时出现一下错误的提示,删除的本机的known_hosts文件

shell 脚本中 echo mysql密码 shell脚本输入ssh密码_服务器端_07

shell 脚本中 echo mysql密码 shell脚本输入ssh密码_运维_08

ssh用秘钥验证的方法:在本地机器上生成秘钥对,把生成的公钥放到服务器端,这样用户就可以不用输入密码就可以登录。

shell 脚本中 echo mysql密码 shell脚本输入ssh密码_服务器_09

查看生成的公钥和私钥

shell 脚本中 echo mysql密码 shell脚本输入ssh密码_开发工具_10

把生成的公钥上传到服务器端

shell 脚本中 echo mysql密码 shell脚本输入ssh密码_开发工具_11

3.在远程服务器添加一个用户为fanlj,但是不登陆到远程主机.

shell 脚本中 echo mysql密码 shell脚本输入ssh密码_开发工具_12

shell 脚本中 echo mysql密码 shell脚本输入ssh密码_服务器端_13

SSH到远程主机时,能够调用远程主机的X窗口

ssh -X   192.168.1.30

sshd配置文件解析

shell 脚本中 echo mysql密码 shell脚本输入ssh密码_服务器_14

# vim  /etc/ssh/sshd_config
Port 3389          //修改端口号,修改后客户端登陆ssh  -p  3389 x.x.x.x
Protocol 2
ListenAddress  192.168.168.174       //不是在所有IP地址上监听,只监听指定IP地址
PermitRootLogin  no        //不允许root用户以ssh方式登陆
PermitEmptyPasswords  no   //不允许使用空密码
UseDNS no            //不执行DNS反解
LoginGraceTime  2m    //登录限时(宽限期),若客户端超过此时间(默认2分钟)
//未登录成功,服务器将主动断开连接
StrictModes yes        //严格模式,此模式会在允许登入前检查用户家目录和密钥库
//文件的权限、归属,若有异常(其他人能写入)则拒绝登入
MaxAuthTries  6     //每次连接允许认证登录的最多次数,若超过此次数
//仍未登录成功,服务器将主动断开连接

4.实现黑名单/白名单

添加两个用户分别为lj和jim

(1)只使用黑名单,其他默认全允许;或只使用白名单,默认其他全拒绝

(2)允许tom用户使用ssh,只允许root用户在192.168.1.30上使用ssh,其他全拒绝

# vim  /etc/ssh/sshd_config
AllowUsers  tom  root@192.168.1.30

在服务器端配置192.168.1.30

shell 脚本中 echo mysql密码 shell脚本输入ssh密码_shell_15

shell 脚本中 echo mysql密码 shell脚本输入ssh密码_shell_16

shell 脚本中 echo mysql密码 shell脚本输入ssh密码_运维_17

shell 脚本中 echo mysql密码 shell脚本输入ssh密码_服务器端_18

在客户端进行测试

shell 脚本中 echo mysql密码 shell脚本输入ssh密码_运维_19

shell 脚本中 echo mysql密码 shell脚本输入ssh密码_运维_20





https://blog.51cto.com/343614597/1700270