<?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>madapez&#187; madapez.com befasst sich mit Linux mint, Kurzgeschichten, Freizeit und alles Kreativ-e</title>
	<atom:link href="http://madapez.com/tag/ssh/feed/" rel="self" type="application/rss+xml" />
	<link>http://madapez.com</link>
	<description>IT, Linux, Web und Kreatives aus der Sicht eines verrückten Affen</description>
	<lastBuildDate>Wed, 27 Apr 2011 09:00:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Howto: Chroot SFTP Zugang mit openssh ohne shell (ssh) Zugang</title>
		<link>http://madapez.com/it/linux/howto-chroot-sftp-zugang-openssh-ohne-shell-ssh/</link>
		<comments>http://madapez.com/it/linux/howto-chroot-sftp-zugang-openssh-ohne-shell-ssh/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 20:37:25 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[chroot]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[sftp]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://madapez.com/?p=505</guid>
		<description><![CDATA[Manchmal kann es sinnvoll sein Prozesse via SFTP zu automatisieren oder man möchte anderen Usern die Möglichkeit geben Dateien abzulegen. Um zu verhindern, dass sie das ganze Dateisystem durchbrowsen können müssen wir eine Chroot-Umgebung für diese Benutzer etablieren. Ich zeige &#8230;<p class="read-more"><a href="http://madapez.com/it/linux/howto-chroot-sftp-zugang-openssh-ohne-shell-ssh/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Manchmal kann es sinnvoll sein Prozesse via SFTP zu automatisieren oder man möchte anderen Usern die Möglichkeit geben Dateien abzulegen. Um zu verhindern, dass sie das ganze Dateisystem durchbrowsen können müssen wir eine <strong>Chroot</strong>-Umgebung für diese Benutzer etablieren. Ich zeige Dir wie.</p>
<p>Benötigt wird hierzu ein Ubuntu oder Debian System (bei anderen Distributionen mag der Lösungsweg identisch sein) und openssh ab Version <em>4.9p1</em>. Ab dieser Version hat <strong>openssh</strong> bordeigene Mittel um die <strong>Chroot</strong>-Umgebung umzusetzen.<span id="more-505"></span></p>
<h2>openssh konfigurieren</h2>
<p>Zu allererst müssen wir <strong>openssh</strong> mitteilen, dass es den <strong>SFTP Zugang</strong> für Benutzer der Gruppe &#8220;<strong>sftp</strong>&#8221; anders behandeln soll, als den Zugang anderer User. Hierzu nehmen wir in der Datei <em>/etc/ssh/sshd_config</em> 2 Einstellungen vor:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#Subsystem sftp /usr/lib/openssh/sftp-server</span>
Subsystem sftp internal-sftp
&nbsp;
Match Group sftp
        ChrootDirectory <span style="color: #000000; font-weight: bold;">%</span>h
        ForceCommand internal-sftp
        AllowTcpForwarding no</pre></div></div>

<p>Die erste Konfigurationsanweisung ändert das <strong>SFTP</strong>-Subsystem auf den internen <strong>SFTP</strong>-Server der für das <strong>Chroot</strong>ing besser funktioniert. Hierbei entfällt auch das Installieren bestimmter Bibliotheken im <strong>Chroot</strong>-Verzeichnis.</p>
<p>Die zweite Anweisung greift jedes mal wenn sich ein Benutzer der Gruppe <strong>sftp</strong> authentifiziert. Er wird in sein Home-Directory (%h) eingesperrt und es wird nochmal explizit der internal-sftp geforced. TCP-Forwarding wollen wir auch deaktiviert wissen.</p>
<h2>Usereinstellungen für den Chroot-SFTP-Zugang</h2>
<p>Um das ganze nun zu testen legen wir den User &#8220;sftptest&#8221; an. Es soll sein Home-Dir automatisch angelegt werden (-m), er soll keinen Shell-Zugang bekommen (-s /bin/false) und er soll der Gruppe sftp angehören (-G sftp):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">addgroup sftp
useradd <span style="color: #660033;">-m</span> <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">false</span> <span style="color: #660033;">-G</span> sftp sftptest</pre></div></div>

<p>Ein Passwort sollte der User sftptest auch bekommen:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">passwd</span> sftptest</pre></div></div>

<p>Es folgt ein Prompt bei dem ein Passwort angegeben werden muss. Anschließend muss das Passwort nochmal bestätigt werden.</p>
<p>Hast Du bereits einen User angelegt und möchtest diesem sftp-Zugang gewähren führst Du folgendes aus:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">usermod <span style="color: #660033;">-G</span> sftp sftptest
usermod <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">false</span> sftptest</pre></div></div>

<h2>Das Home-Dir</h2>
<p>Hier müssen wir noch eine Änderung durchführen, die untypisch für das Home-Dir ist. Wir müssen dem root-User den Besitz über das Home-Dir übertragen, andernfalls wird ein Login nicht möglich sein:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">chown</span> root:root <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>sftptest<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">chmod</span> 0755 <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>sftptest<span style="color: #000000; font-weight: bold;">/</span></pre></div></div>

<p>Damit der User Dateien samt Ordnern hochladen kann, müssen wir ihm noch ein Verzeichnis anlegen das ihm gehört.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>sftptest<span style="color: #000000; font-weight: bold;">/</span>upload
<span style="color: #c20cb9; font-weight: bold;">chown</span> sftptest:sftptest <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>sftptest<span style="color: #000000; font-weight: bold;">/</span>upload</pre></div></div>

<p>Das wars. Nun kannst Du die Logindaten ohne Probleme weitergeben.</p>
<p>Viel Spass beim konfigurieren!</p>
<p>Fragen, Kritik oder Anregungen bitte in die Kommentare!</p>
]]></content:encoded>
			<wfw:commentRss>http://madapez.com/it/linux/howto-chroot-sftp-zugang-openssh-ohne-shell-ssh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Howto: ssh ohne Passwort</title>
		<link>http://madapez.com/it/linux/howto-ssh-ohne-passwort/</link>
		<comments>http://madapez.com/it/linux/howto-ssh-ohne-passwort/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 11:58:58 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://madapez.com/?p=280</guid>
		<description><![CDATA[Zum Aufbau einer SSH-Verbindung zu einem Linux-Server oder Linux-Client wird für gewöhnlich ein Benutzername und ein Passwort benötigt. Doch was tut man wen man verschiedene Aufgaben auf einem Server oder Client automatisiert ausführen möchte. Ein Passwort-Prompt ist dort hinderlich, da &#8230;<p class="read-more"><a href="http://madapez.com/it/linux/howto-ssh-ohne-passwort/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Zum Aufbau einer SSH-Verbindung zu einem Linux-Server oder Linux-Client wird für gewöhnlich ein Benutzername und ein Passwort benötigt. Doch was tut man wen man verschiedene Aufgaben auf einem Server oder Client automatisiert ausführen möchte. Ein Passwort-Prompt ist dort hinderlich, da dann der zu automatisierende Vorgang trotzdem eine Benutzereingabe erfordert. Wie kann man das Problem schnell und einfach lösen? Ich zeige es dir.<span id="more-280"></span></p>
<h2 style="text-align: justify;">1. Authentifizierungs-Schlüssel erstellen</h2>
<p style="text-align: justify;">Auf dem Server oder Client, der sich per ssh ohne Passwort einloggen soll müssen die Authentifizierungs-Schlüssel erstellt werden. Dies geschieht mit dem Befehl:</p>
<blockquote style="text-align: justify;"><p>linux-kiste:~# ssh-keygen -t dsa<br />
Generating public/private dsa key pair.<br />
Enter file in which to save the key (/root/.ssh/id_dsa):<br />
Enter passphrase (empty for no passphrase):<br />
Enter same passphrase again:<br />
Your identification has been saved in /root/.ssh/id_dsa.<br />
Your public key has been saved in /root/.ssh/id_dsa.pub.<br />
The key fingerprint is:<br />
4d:d7:09:36:d9:a8:5a:14:c0:b7:7f:49:0b:f4:d9:58 root@linux-kiste</p></blockquote>
<p style="text-align: justify;">In obigen Beispiel möchte ich als root auf einen Server zugreifen. Bitte beachte jedoch, dass es ein Risiko gibt SSH-Verbindungen als root zu Servern aufzubauen. Man sollte eher einen normalen lokalen Benutzer auf dem Server erstellen der mittels sudo Befehle als root ausführen darf. Der Keygen erstellt den private und public Key im Verzeichnis deiner Wahl (Standard ist ~/.ssh). Bei passhprase einfach nur Enter drücken, also leer lassen. Gibst du eine passphrase an, so musst du diese beim Login-Vorgang eingeben und hast somit wiederum keinen automatisierten Login.</p>
<h2 style="text-align: justify;">2. den erstellen Authentifizierungs-Schlüssel einspielen</h2>
<p style="text-align: justify;">Nun musst du auf dem Server oder Client, zu dem du eine Verbindung mittels ssh ohne Passwort aufbauen willst, den Public Key einspielen. Dies geschieht mit dem Befehl:</p>
<blockquote style="text-align: justify;"><p>cat ~/.ssh/id_dsa.pub | ssh root@andere-linux-kiste &#8216;cat &gt;&gt; .ssh/authorized_keys</p></blockquote>
<p style="text-align: justify;">Nach Eingabe des obigen Befehls wird das letzte mal nach einem Passwort gefragt. Dein Public Key wird auf dem anderen Server am Ende der Datei .ssh/authorized_keys eingefügt.  Wenn du jetzt probierst dich per SSH ohne Passwort einzuloggen, wirst du feststellen, dass kein Passwort-Prompt mehr kommt.</p>
<h2 style="text-align: justify;">3. Fragen, Anregungen und Kritik?</h2>
<p style="text-align: justify;">Hat dir mein Howto geholfen? Klappt etwas bei dir nicht? Hast du Fragen oder möchtest einfach nur Danke sagen? Dann schreibe einen Kommentar.</p>
<p style="text-align: justify;">Vielen Dank!</p>
<p style="text-align: justify;">Post-Picture from <a href="http://www.flickr.com/photos/nathanatbath/">cauthon</a> can be found <a href="http://www.flickr.com/photos/nathanatbath/2281761335/">here</a>.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 556px; width: 1px; height: 1px;">http://www.flickr.com/photos/nathanatbath/</div>
]]></content:encoded>
			<wfw:commentRss>http://madapez.com/it/linux/howto-ssh-ohne-passwort/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

