1.在生成环境中经常要修改服务器的密码,以保证安全,可以用shell编写脚本。 用ssh直接修改对方服务器的密码可以用ssh 用户名@登录IP 后跟命令就可以实现,但是需要管理员输入密码后才能操作,为了不让管理员手动进行输入所以用expect解决此方案,由于expect是单独的命令在/bin/bash是无法使用的,所以必须要嵌套使用,<<代表以什么结尾,EOF代表以EOF结尾,spawn输入登录的命令行,expect为期待着问什么,send代表发送需要的内容,\r代表为回车符。 1台服务器修改密码的方法 多台服务器并且在全国各地IP地址都是不同的密码修改,专门编写存放IP地址的文件,然后在脚本中调用该文件。 2.ssh输入时出现一下错误的提示,无法ssh登录到服务器端,提示如下,说明对端服务器的验证被删除。 服务器端删除验证的方法 服务器端解决的方案 解决ssh输入时出现一下错误的提示,删除的本机的known_hosts文件 ssh用秘钥验证的方法:在本地机器上生成秘钥对,把生成的公钥放到服务器端,这样用户就可以不用输入密码就可以登录。 查看生成的公钥和私钥 把生成的公钥上传到服务器端 3.在远程服务器添加一个用户为fanlj,但是不登陆到远程主机. SSH到远程主机时,能够调用远程主机的X窗口 ssh -X 192.168.1.30 sshd配置文件解析 # 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 在客户端进行测试 |
|