sshd服务
ssh提供两种安全验证的方法:
基于口令的验证--用账号和密码来验证登录。
基于秘钥的验证--需要在本地生成密钥对,然后把密钥对中的公钥上传到远端服务器。
ssh的配置信息保存在/etc/ssh/sshd_config
port 22默认的SSHD服务端口
listenAddress 0.0.0.0 监听的ip地址
protocol 2 版本
Hostkey /etc/ssh/ssh_host_key SSH版本为1时,DES私钥存放的位置
HostKey /etc/ssh/ssh_host_rsa_key 版本为2时,RSA私钥存放的位置
HostKey /etc/ssh/ssh_host_dsa_key 版本为2时,DSA私钥存放的位置
permitRootLongin yes 是否允许root管理员直接登录
strictModes yes 当远程用户的私钥改变时直接拒绝连接
MaxAuthTries 6 最大密码尝试次数
Maxsessions 10 最大终端数
passwordAuthentication yes 是否允许密码验证
permitEmptypasswords no 是否允许空密码登录
基于秘钥验证登录
ssh-keygen -i dsa #生成dsa密钥,默认存放在/root/.ssh/id_dsa.pub
ssh-copy-id -i /root/.ssh/id_dsa.pub root@172.16.1.31 #将生成的公钥文件传送给服务器
脚本批量分发密钥
#bin/bsah
for ip in {5,6,7,8,9,31,41,51} #需要分发的ip
do
echo "================== host 172.16.1.$ip pub-key start fenfa====================" #提示开始
sshpass -p"123456" ssh-copy-id -i /root/.ssh/id_dsa.pub root@172.16.1.$ip "-o StrictHostKeyChecking=no" &>/dev/null #分发密钥
echo -e "host 172.16.1.$ip fenfa success."
echo "==================host 172.16.1.$ip fenfa end===============================" #提示结束
echo " "
done
检查批量分发密钥是否成功
#!/bin/bash
CMD=$1
for ip in {5,6,7,8,9,31,41,51}
do
echo "==================== host 172.16.1.$ip check ==================== "
ssh 172.16.1.$ip $CMD
echo ""
done