<?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>Simlau.net Blog &#187; keychain</title>
	<atom:link href="http://blog.simlau.net/tag/keychain/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.simlau.net</link>
	<description>Gedanken, Impressionen und Technikkrams</description>
	<lastBuildDate>Tue, 25 Oct 2011 18:13:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>SSH-Agent: keychain</title>
		<link>http://blog.simlau.net/ssh-agent-keychain.html</link>
		<comments>http://blog.simlau.net/ssh-agent-keychain.html#comments</comments>
		<pubDate>Tue, 07 Apr 2009 17:28:39 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[keychain]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://blog.simlau.net/?p=603</guid>
		<description><![CDATA[Um einen SSH-Login ohne Passwort zu ermöglichen kann man ohne weiteres SSH-Keys ohne Passphrase verwenden. Dies hat allerdings einen großen Nachteil: wird der Key &#8220;gestohlen&#8221; bzw. gerät er in die falschen Hände, kann ein Angreifer sich ohne weiteres auf den betroffenen Systemen einloggen. Trotzdem braucht man passwortlose Logins des öfteren. Ein gutes Beispiel hierfür sind [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://uploads.simlau.net/files/simon/utilities-terminal.png" alt="Terminal" style="float: right;" />Um einen SSH-Login ohne Passwort zu ermöglichen kann man ohne weiteres SSH-Keys ohne Passphrase verwenden. Dies hat allerdings einen großen Nachteil: wird der Key &#8220;gestohlen&#8221; bzw. gerät er in die falschen Hände, kann ein Angreifer sich ohne weiteres auf den betroffenen Systemen einloggen.</p>
<p>Trotzdem braucht man passwortlose Logins des öfteren. Ein gutes Beispiel hierfür sind automatisierte Backups per Cronjob. An dieser Stelle kommt keychain ins Spiel. Hier handelt es sich um ein Programm, welches die Umgebungsvariablen des SSH-Agents speichert und so auch anderen Login-Shells zur Verfügung stellt.</p>
<p>Das Passwort muss also nur ein ein einziges mal eingegeben werden und steht dann solange zur Verfügung bis der keychain Deamon beendet wird.<span id="more-603"></span></p>
<p><strong>Installation</strong><br />
Unter Debian und Ubuntu-Systemen muss hierzu das Paket keychain installiert werden. </p>
<blockquote><p><code>root@server01 ~ $ apt-get install keychain</code></p></blockquote>
<p>Anschließend muss (wenn nicht schon geschehen) ein SSH-Key generiert werden, natürlich mit einer entsprechenden Passphrase. Dazu kann wie gewohnt das Kommando <strong>ssh-keygen</strong> verwandt werden. Informationen dazu findet man auf der entsprechenden Man-Page. Ich möchte hier gar nicht weiter darauf eingehen, weil ich mal davon ausgehe, dass Menschen, die sich so etwas einrichten, wissen was sie tun.</p>
<p>Anschließend muss der Key in keychain importiert werden. Dies geschiet folgendermaßen:</p>
<blockquote><p><code>root@server01 ~ $ keychain --quiet ~/.ssh/id_rsa</code></p></blockquote>
<p>Hier wird einmalig nach der Passphrase des SSH-Keys gefragt. Anschließend kann man sich ohne weiteres auf allen Servern Passwortlos einloggen. Wird die Sitzung beendet müssen die Umgebungsvariablen per</p>
<blockquote><p><code>source ~/.keychain/$HOSTNAME-sh</code></p></blockquote>
<p>neu geladen werden.</p>
<p><strong>Automatisches Freischalten des Keys</strong><br />
Um die gespeicherten Umgebungsvariablen beim Einloggen eines Users automatisch zu laden, kann man sich das folgende Snippet in die Servereigene ~/.bash_profile kopieren. Sofern der SSH-Key (in diesem Fall ein RSA2 Key) noch nicht geladen wurde, wird er hier zusätzlich noch automatisch importiert und nach dem Passwort gefragt. Der Parameter $HOSTNAME sollte entsprechend angepasst werden.</p>
<blockquote><p><code>if [[ -f ~/.ssh/id_rsa ]]; then<br />
&nbsp;&nbsp;keychain --quiet ~/.ssh/id_rsa<br />
&nbsp;&nbsp;source ~/.keychain/$HOSTNAME-sh<br />
fi</code></p></blockquote>
<p>Der Parameter &#8211;quiet unterdrückt hier die &#8220;größere&#8221; Ausgabe, um nicht weiter zu stören. Das Kommando source importiert die Umgebungsvariablen.</p>
<p>Bei einem Script, welches z. B. per Cronjob gestartet wird, kann die Einbindung von Keychain folgendermaßen aussehen:</p>
<blockquote><p><code>#!/bin/bash<br />
# MeinScript.sh</p>
<p># Umgebungsvariablen laden<br />
source /root/.keychain/$HOSTNAME-sh</p>
<p># Per SCP eine Datei hohlen<br />
scp root@192.168.168.26:/root/foo /root/bar</code></p></blockquote>
<p>Sobald der Deamon keychain beendet wird (z. B. in dem der Server stromlos gemacht oder rebootet wird), hat ein Angreifer keine Chance mehr. <img src='http://blog.simlau.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.simlau.net/ssh-agent-keychain.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

