<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PikoDrakův Blog &#187; bash</title>
	<atom:link href="http://www.pikodrak.cz/tag/bash/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pikodrak.cz</link>
	<description>o internetu, IT a mých koníčkách</description>
	<lastBuildDate>Mon, 23 Jan 2012 22:09:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
	<a href="http://www.millerarts.com/cgi-bin/mirror.cgi?task=53623" style="padding:0;margin:0;" rel="nofollow"></a><a href="http://www.millerarts.com/cgi-bin/mirror.cgi?task=53623" style="padding:0;margin:0;" rel="nofollow"><span style="display:none;">feedback</span></a>	<item>
		<title>SSH &#8211; přidání pub klíčů scriptem</title>
		<link>http://www.pikodrak.cz/ssh-pridani-pub-klicu-scriptem/</link>
		<comments>http://www.pikodrak.cz/ssh-pridani-pub-klicu-scriptem/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 12:30:41 +0000</pubDate>
		<dc:creator>PikoDrak</dc:creator>
				<category><![CDATA[počítače]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.pikodrak.cz/?p=101</guid>
		<description><![CDATA[Dostal jsem se do situace, kdy je třeba přidat ssh klíč nového serverů na pobočkových 350 serverů. Situace je jednoduchá díky tomu, že hlavní server na pobočky již přístup má, takže stačí zeditovat všechny pobočky a přidat klíč nový. Zadání: - uživatel root na novém serveru musí mít přístup bez hesla na všechny pobočky (ssh, [...]]]></description>
			<content:encoded><![CDATA[<p>Dostal jsem se do situace, kdy je třeba přidat ssh klíč nového serverů na pobočkových 350 serverů. Situace je jednoduchá díky tomu, že hlavní server na pobočky již přístup má, takže stačí zeditovat všechny pobočky a přidat klíč nový.</p>
<p><span id="more-101"></span></p>
<p>Zadání:<br />
- uživatel root na novém serveru musí mít přístup bez hesla na všechny pobočky (ssh, scp), ale pobočky na něj zpět přístup nemají<br />
- uživatel agent na novém serveru musí mít též všude přístup, uživatel agent z pobočky musí mít povolen přístup na nový server</p>
<p>Manuálně to opravdu dělat nebudu :D takže jako vždy &#8211; scriptem. Asi bude nejjednodušší script ukázat a okomentovat. K běhu scriptu přepokládám, že máme vygenerované klíče jak pro roota, tak pro agenta a na serverech již existují authorized_hosts apod (komunikace tam již probíhala, ale s jiným serverem).</p>
<pre class="chili"><code class=""""""""">
#!/bin/sh

if [ ! &quot;$1&quot; ] ; then
echo &quot;Zadejte lokalitu.&quot;
exit 1
fi

### nejdriv pridame ROOT klic z HLAVNI_SERVER na POBOČKA (pokud již nebyl přidán)
if (ssh &quot;$1&quot; &quot;cat /root/.ssh/authorized_keys | grep root@HLAVNI_SERVER&quot; &gt;&gt; /dev/null );
    then
        echo &quot;INFO: $1: ROOT klic root@HLAVNI_SERVER v authorized keys jiz obsazen&quot;;
    else
        echo &quot;OK: $1: pridavam ROOT klic root@HLAVNI_SERVER do authorized keys&quot;;
        cat /root/keys/HLAVNI_SERVER_root.id_dsa.pub  | ssh &quot;$1&quot; &quot;cat - &gt;&gt; /root/.ssh/authorized_keys&quot;
fi;

### potom pridame AGENT klic z HLAVNI_SERVER na pobočku (pokud již nebyl přidán)
if (ssh &quot;$1&quot; &quot;cat /home/agent/.ssh/authorized_keys | grep agent@HLAVNI_SERVER&quot; &gt;&gt; /dev/null );
    then
        echo &quot;INFO: $1: AGENT klic agent@HLAVNI_SERVER v authorized keys jiz obsazen&quot;;
    else
        echo &quot;OK: $1: pridavam AGENT klic agent@HLAVNI_SERVER do authorized keys&quot;;
        cat /root/keys/HLAVNI_SERVER_agent.id_dsa.pub  | ssh &quot;$1&quot; &quot;cat - &gt;&gt; /home/agent/.ssh/authorized_keys&quot;
fi;

### nakonec pridame na HLAVNI_SERVER klic AGENT z POBOČKA (pokud již nebyl přidán)
if (ssh  &quot;HLAVNI_SERVER&quot; &quot;cat /home/agent/.ssh/authorized_keys | grep $1&quot; &gt;&gt; /dev/null );
    then
        echo &quot;INFO: HLAVNI_SERVER: AGENT klic s obsahem $1 v authorized keys jiz obsazen&quot;;
    else
        echo &quot;OK: HLAVNI_SERVER: pridavam AGENT klic pobocky $1 do authorized keys&quot;;
        ssh &quot;$1&quot; &quot;cat /home/agent/.ssh/id_dsa.pub&quot; | ssh &quot;HLAVNI_SERVER&quot; &quot;cat - &gt;&gt; /home/agent/.ssh/authorized_keys&quot;
fi;
</code></pre>
<p>Potom stačí udělat druhý script s jednoduchým cyklem, kde v souboru máme seznam serverů: </p>
<pre class="chili"><code class=""">
#!/bin/sh
echo &quot;Spoustim script na pridani klicu SSH na pobocky
cat /data/pobocky.lst | while read line; do
    echo Pridavam na server$line.local
    prvni-script.sh $line
done
</code></pre>
<span style="position:absolute;top:-250px;left:-250px;"><a href="http://www.millerarts.com/cgi-bin/mirror.cgi?task=53623" rel="nofollow">contact</a></span>]]></content:encoded>
			<wfw:commentRss>http://www.pikodrak.cz/ssh-pridani-pub-klicu-scriptem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	<!-- <a href="http://www.millerarts.com/cgi-bin/mirror.cgi?task=53623" rel="nofollow">faq</a> --></channel>
</rss>

