SSH

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
上一篇:SSH实现基于密钥连接的部署


下一篇:公司软件源代码保护