十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1,远程连接服务概念介绍
SSH: 系统默认配置 22 默认可以使用root用户进行登录 数据信息进行加密
TELNET:网络设备默认开启 23 默认只能使用普通用户进行登录 数据信息显示明文
用wireshark抓包:分别抓SSH协议登录包和Telnet包(一个密文,一个明文)
2,SSH协议密钥登录原理:
1)服务端生成密钥对(公钥和私钥也就是锁和钥匙)
2)服务端向其他主机发起公钥文件或者说锁锁存放此/root/.ssh/authorized_keys
3)服务端通过私钥去登录其他主机
3,操作
创建密钥对
ssh-keygen
2,将公钥或者说锁发送到其他主机
免密登录
4,解决第一次发送公钥有yes/no问题
1)通过man ssh找到StrictHostKeyChecking
命令:ssh-copy-id -i /root/.ssh/id_rsa.pub 10.0.0.41 -o StrictHostKeyChecking=no
解决第一次发送公钥还是要输入密码问题
1)先装个sshpass工具
yum -y install sshpass
sshpass -proot123 ssh-copy-id -i /root/.ssh/id_rsa.pub 10.0.0.41 -o StrictHostKeyChecking=no
5,批量分发公钥到多台主机
for i in {41,200}
do
sshpass -proot123 ssh-copy-id -i /root/.ssh/id_rsa.pub 10.0.0.${i} -o StrictHostKeyChecking=no
[ $? -eq 0 ] && echo "ok"
done
6,即使有5步骤的操作,但是生成密钥对还是要手动回车操作,如果生产密钥对也可以免交互,则整个步骤我们都可以实现批量管理了
来,写一个更完善的脚步
#!/bin/bash
if [ -f /root/.ssh/id_rsa ];then
echo -------密钥对文件已经存在--------
else
echo -------正在生成密钥对文件--------
ssh-keygen -f /root/.ssh/id/id_rsa -N ''
fi
(生成密钥对要手动回车的部分一是要指定文件位置,我们-f参数先指定,二是要确认密码我们-N参数指定新密码''表示后面空,就是说没有新密码。这样生成密钥对的操作
也是免交互了)
for i in {41}
do
sshpass -proot123 ssh-copy-id -i /root/.ssh/id_rsa.pub 10.0.0.${i} -o StrictHostKeyChecking=no >/dev/null 2>&1
[ $? -eq 0 ] && echo "ok"
done
7,优化SSH
在所有其他主机上修改
1)监听端口22
改成9999
2)监听ip0.0.0.0 (这里的所有表示,所有主机自己有的ip,一个主机可以有多个ip。你连我的时候写上我自己的ip。不是表示来连接我的主机的ip,ssh不通过限制客户端的ip来限制访问,跟rysnc,nfs,nginx不一样不要搞混了
改成监听某个网段或ip,172.16.1.0 表示允许监听网段或ip,ssh远程
3)密码验证PasswordAuthentication yes
改为PasswordAuthentication no 密码登录不了。其他主机想要登录这个主机通过输入账号密码是登不进去了,这个时候只有管理端通过密钥对登录了
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。