<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ssh on 诗与胡说</title>
    <link>https://kylingit.com/tags/ssh/index.xml</link>
    <description>Recent content in Ssh on 诗与胡说</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh_cn</language>
    <copyright>Copyright © 2021 Kylinking</copyright>
    <atom:link href="https://kylingit.com/tags/ssh/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>salt-ssh 配置使用</title>
      <link>https://kylingit.com/blog/salt-ssh-%E9%85%8D%E7%BD%AE%E4%BD%BF%E7%94%A8/</link>
      <pubDate>Thu, 15 Sep 2016 14:54:29 +0000</pubDate>
      
      <guid>https://kylingit.com/blog/salt-ssh-%E9%85%8D%E7%BD%AE%E4%BD%BF%E7%94%A8/</guid>
      <description>&lt;script src=&#34;https://blog-1252261399.cos-website.ap-beijing.myqcloud.com/pangu.js&#34;&gt;&lt;/script&gt;

&lt;p&gt;salt-ssh 是 Saltstack 框架下的一款批量化远程操作工具，具体介绍可以看 &lt;a href=&#34;http://opensgalaxy.com/2015/08/13/saltstack%E5%85%A5%E9%97%A8%E3%80%90salt-ssh%E3%80%91%E4%BD%BF%E7%94%A8/&#34;&gt;这里&lt;/a&gt;
关于 Saltstack，它是一款自动化运维工具，具体可以浏览 &lt;a href=&#34;https://saltstack.com&#34;&gt;官网&lt;/a&gt;，这里只介绍一下 salt-ssh 的使用。&lt;/p&gt;

&lt;!-- more --&gt;

&lt;p&gt;salt-ssh 的配置很简单，在 /etc/salt/ 下修改 roster 文件，把需要管理的服务器 ip，用户名，密码按格式配置好即可
&amp;gt; vim /etc/salt/roster&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;server00:
 host: x.x.x.x
 user: root
 passwd: root
 
server01:
 host: x.x.x.x
 user: root
 passwd: root
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;然后测试一下能不能连通就好了
&amp;gt; salt-ssh &amp;lsquo;*&amp;rsquo; test.ping&lt;/p&gt;

&lt;p&gt;&amp;lsquo;*&amp;rsquo; 是指所有节点，想要单独某个节点的话指定就可以了
&amp;gt; salt-ssh server00 test.ping&lt;/p&gt;

&lt;p&gt;可能需要验证是否接受密钥，不想被提示就加上参数 -i
&amp;gt; salt-ssh &amp;lsquo;*&amp;rsquo; test.ping -i&lt;/p&gt;

&lt;p&gt;测试能够连通就可以执行命令了，使用参数 -r
&amp;gt; salt-ssh &amp;lsquo;*&amp;rsquo; -r &amp;lsquo;uname -a&amp;rsquo; -i&lt;/p&gt;

&lt;p&gt;这里要说的是配置文件里明文记录密码是十分不安全的行为，极端情况是某台服务器被入侵，发现了这个文件，恰巧又有大量服务器配置在这，相当于把机器送到黑客手上了。
即使是加密后的密码也不安全，总之是用文件记录敏感信息都是不负责任的做法。&lt;/p&gt;

&lt;p&gt;想要不在配置文件中记录密码，可以在执行命令的时候把密码作为参数
&amp;gt; salt-ssh &amp;lsquo;*&amp;rsquo; &amp;ndash;passwd &amp;lsquo;password&amp;rsquo; -r &amp;lsquo;args&amp;rsquo; -i&lt;/p&gt;

&lt;p&gt;而配置文件里只要记录 ip 和用户名就可以&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;server00:
 host: x.x.x.x
 user: root
 
server01:
 host: x.x.x.x
 user: root
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;这样做的优点是不会在文件中泄露密码，缺点是假如每台机器密码不一样，执行起来会比较麻烦，各自取舍吧。 也有通过 keys 验证身份，但测试之后发现还是得认证身份，这里就不提了。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tips&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;其实直接在命令中指定密码依然十分危险，因为命令记录会把你出卖&amp;hellip;可以执行一下&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;cat ~/.bash_history&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;所以涉及到输入密码的命令，可以在输入前键入一个空格，即按一下空格再正常输入命令，这样这条命令就不会被记录在历史里。&lt;/p&gt;

&lt;script&gt;pangu.spacingPage();&lt;/script&gt;
</description>
    </item>
    
  </channel>
</rss>