一、不登陆远程主机在上面创建用户
# ssh root@远程主机 ‘useradd xxxx’
二、登陆远程主机,能打开GUI界面
# ssh -X root@远程主机
三、主要的配置文件更改
# vim /etc/ssh/sshd_config
UseDNS no 阻止DNS反解析(可提高客户端登录效率)
LoginGraceTime 2m 登录限时(宽限期),若客户端超过此时间(默认2分钟)未登录成功,服务器将主动断开连接
StrictModes yes 严格模式,此模式会在允许登入前检查用户家目录和密钥库文件的权限、归属,若有异常(其他人能写入)则拒绝登入
MaxAuthTries 6 每次连接允许认证登录的最多次数,若超过此次数仍未登录成功,服务器将主动断开连接
DenyUsers User1 User2
AllowUser User2 User2
DenyGroups GROUP1 GROUP2
AllowGroups GROUP1 GROUP2
sshd处理规则的先后顺序,是从上到下执行的,Deny和Allow规则建议不要同时使用
只用Deny规则时相当于黑名单策略(仅拒绝…,其他允许);
只用Allow规则时相当于白名单策略(仅允许…,其他拒绝).
四.实现不用密码即可连接ssh
1、生成密钥对
# ssh-keygen ->后续全部回车
2、上传公钥到服务器root用户下
# ssh-copy-id -i root@服务器IP地址
3、ssh到服务器上或scp文件都不再需要填写密码
4、当客户端连接远程服务器时,会在客户端当前用户的家目录下生成.ssh/known_hosts文件,把服务器的身份信息保存下来。下一次客户端再连接时,就不再询问是否继续(yes/no)?
5、使用密钥对方式连接时,客户端生成的密钥是用户家目录下.ssh/id_rsa和.ssh/id_rsa.pub,上传时是将id_rsa.pub写入到服务器相关用户家目录下.ssh/authorized_keys文件中
五.脚本实现更改多台服务器的密码
安装expect工具
创建存放IP地址的文件/root/bin/ipaddr.txt
因为需要更改的ip地址可能是不不规律的;
脚本
#!/bin/bash
OLDPASS=123456
NEWPASS=Taren1
for IP in $(cat /root/bin/ipaddr.txt)
do
expect<<EOF
spwan ssh $IP "echo $NEWPASS | passwd --stdin root"
expect "(yes/no)?"{
send "yes\r"
expect "password:"
send "$OLDPASS\r"
}"password:"{send "$OLDPASS\r"}
expect eof
EOF
done
本文转自Jx战壕 51CTO博客,原文链接:http://blog.51cto.com/xujpxm/1403224,如需转载请自行联系原作者