初学云计算要了解什么?如何学Linux Shell知识点?在云计算运维人员的日常工作中,通常需要同时在多台服务器上执行同样的命令,如对比日志、检查服务等,这就需要从业人员具备服务器批量操作的能力。很多初学云计算的人并不清楚如何使用Linux Shell在多服务器上批量操作,接下来小编就给大家介绍一下。

%title插图%num

如果需要在大量的服务器执行相同的操作,或者是部署分布式应用(elk、k8s、geth等)时,一般的做法是写一个批量操作的本地脚本,依次CSP到每一台服务器上,然后SSH到每一台服务器上执行脚本。以下是相关知识点介绍:

SSH

Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中建立安全隧道来实现SSH客户端与服务器之间的连接。

SSH的原理跟HTTPS差不多,都是基于TCP和非对称加密进行的应用层协议。它跟HTTPS的不同之处在于HTTPS通过 数字证书和数字证书认证中心 来防止中间人攻击,而SSH服务器的公钥没有人公证,只能通过其公钥指纹来人工确定其身份。

公钥登陆

理解了非对称加密的原理后,再公钥登陆会非常简单。由于公私钥是唯一的一对,在客户端保障自己私钥安全的情况下,服务端通过公钥就可以完全确定客户端的真实性,所以要实现公钥登陆,我们就要先生成一个公私密钥对。通过ssh-keygen命令来生成密钥对,为了让步骤更完整,我把它们暂时保存到工作目录,默认会保存到/.ssh目录。

把私钥文件./test 的内容放到 客户端的~/.ssh/id_rsa,再使用密码试登陆到服务器后,将公钥内容./test.pub里的内容放到 服务器的~/.ssh/authorized_keys。再次登陆时,ssh 会自动使用自己的私钥来认证,也就避免了输出密码。

批量操作

公钥登陆帮我们避免了每次登陆服务器要输出密码的麻烦,它同时也解决了每个登陆会话都会同步阻塞的问题,这样我们就可以利用ssh的 ssh user@host command方式来直接在服务器上执行命令。

同时,在我们拥有一个ip列表的情况下,使用for循环遍历ip列表,在多个服务器上批量执行命令也就成为了可能。

想了解更多Linux Shell脚本知识点、想快速掌握云计算运维工程师所需的技能,你可以选择专业学习一下。让自己尽快入门云计算,所学即为所用,毕业后快速高薪就业!