您的位置:首页 > 运维架构 > Shell

用shell脚本编写ssh直接修改目标服务器的密码以及ssh的应用

2015-10-05 18:52 771 查看
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












在客户端进行测试






内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell脚本