<?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>Hodžův blog &#187; Ssh</title>
	<atom:link href="http://hodza.net/category/linux/sluzby/ssh/feed/" rel="self" type="application/rss+xml" />
	<link>http://hodza.net</link>
	<description>I přestože jsem paranoidní neznamená, že mě nedostanou...</description>
	<lastBuildDate>Mon, 30 Jan 2012 18:02:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Empty jako náhrada za Expect</title>
		<link>http://hodza.net/2007/03/29/empty-jako-nahrada-za-expect/</link>
		<comments>http://hodza.net/2007/03/29/empty-jako-nahrada-za-expect/#comments</comments>
		<pubDate>Thu, 29 Mar 2007 08:11:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Scriptíky]]></category>
		<category><![CDATA[Ssh]]></category>

		<guid isPermaLink="false">http://hodza.net/?p=54</guid>
		<description><![CDATA[Pro ssh přihlašování bez klíčů používám standardně expect (jak už jste se mohli dočíst). Dnes jsem potřeboval implementovat novou funkci a vzhledem k tomu, že se mi ji zrovna dvakrát nechtělo vymýšlet, rozhodl jsem se, že požádám o radu strýčka gůgla. Funkci jsem nenašel, ale zato jsem narazil na projekt empty, jenž je &#8222;obdobou&#8220; expectu.

Finta [...]]]></description>
			<content:encoded><![CDATA[<p>Pro ssh přihlašování bez klíčů používám standardně expect <a href="http://hodza.net/2007/02/03/ssh-bez-klicu-aneb-k-cemu-je-ten-expect/" title="SSH bez klíčů">(jak už jste se mohli dočíst)</a>. Dnes jsem potřeboval implementovat novou funkci a vzhledem k tomu, že se mi ji zrovna dvakrát nechtělo vymýšlet, rozhodl jsem se, že požádám o radu strýčka gůgla. Funkci jsem nenašel, ale zato jsem narazil na projekt empty, jenž je &#8222;obdobou&#8220; expectu.</p>
<p><span id="more-54"></span></p>
<p>Finta Fň je v tom, že emty spoští  procesy a apliace pod pseudo terminálem. Co se mi na něm líbí, je jednoduchost. Pro ukázku přikládám  4 scripty z jejich domovské stránky, které se přes telnet přihlásí na stroj a vypíší whoami.</p>
<p>1. script &#8211; v Empty<br />
<code>#!/bin/sh<br />
empty -f -i in -o out telnet foo.bar.com<br />
empty -w -i out -o in "ogin:" "luser\n"<br />
empty -w -i out -o in "assword:" "TopSecret\n"<br />
empty -s -o in "who am i\n"<br />
empty -s -o in "exit\n"</code></p>
<p>2. script &#8211; to samé ale v TCL/Expect<br />
<code>#!/usr/bin/expect<br />
spawn telnet foo.bar.com<br />
expect ogin {send luser\r}<br />
expect assword {send TopSecret\r}<br />
send "who am i\r"<br />
send "exit\r"<br />
expect eof</code></p>
<p>3. script &#8211; to samé, ale jako Perl/expect module<br />
<code>#!/usr/bin/perl<br />
use Expect;<br />
my $exp = Expect-&gt;spawn("telnet foo.bar.com");<br />
$exp-&gt;expect($timeout,<br />
[ 'ogin: $' =&gt; sub {<br />
$exp-&gt;send("luser\n");<br />
exp_continue; }<br />
],<br />
[ 'assword:$' =&gt; sub {<br />
$exp-&gt;send("TopSecret\n");<br />
exp_continue; }<br />
],<br />
'-re', qr'[#&gt;:] $'<br />
);<br />
$exp-&gt;send("who am i\n");<br />
$exp-&gt;send("exit\n");<br />
$exp-&gt;soft_close();</code></p>
<p>4. script &#8211; to samé v Python/Pexpect<br />
<code>#!/usr/local/bin/python<br />
import pexpect<br />
child = pexpect.spawn('telnet foo.bar.com');<br />
child.expect('ogin: ');<br />
child.sendline('luser');<br />
child.expect('assword:');<br />
child.sendline('TopSecret');<br />
child.sendline('who am i');<br />
child.sendline('exit');<br />
child.expect(pexpect.EOF);<br />
print child.before;</code></p>
<p>Tak co &#8211; kterou metodu by jste zvolili?</p>
]]></content:encoded>
			<wfw:commentRss>http://hodza.net/2007/03/29/empty-jako-nahrada-za-expect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSH bez klíčů aneb k čemu je ten EXPECT?</title>
		<link>http://hodza.net/2007/02/03/ssh-bez-klicu-aneb-k-cemu-je-ten-expect/</link>
		<comments>http://hodza.net/2007/02/03/ssh-bez-klicu-aneb-k-cemu-je-ten-expect/#comments</comments>
		<pubDate>Fri, 02 Feb 2007 23:00:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ssh]]></category>

		<guid isPermaLink="false">http://hodza.net/?p=14</guid>
		<description><![CDATA[Na většině serverů se dá bezproblémově používat přihlašování pomocí SSH klíčů. Bohužel některé zařízení (hlavně WiFi AP) klíče nezvládají. Chceme-li do takového zařízení přistupovat (většinou nějakým scriptem) máme problém, neboť heslo se do SSH z bezpečnostních důvodů nedá poslat rourou. Naštěstí existuje program Expect, kterým lze SSH ošidit.
Postup zprovoznění:
1. Nainstalovat Expect (na to vždycky zapomenu)
2. [...]]]></description>
			<content:encoded><![CDATA[<p>Na většině serverů se dá bezproblémově používat přihlašování pomocí SSH klíčů. Bohužel některé zařízení (hlavně WiFi AP) klíče nezvládají. Chceme-li do takového zařízení přistupovat (většinou nějakým scriptem) máme problém, neboť heslo se do SSH z bezpečnostních důvodů nedá poslat rourou. Naštěstí existuje program Expect, kterým lze SSH ošidit.<span id="more-14"></span></p>
<p>Postup zprovoznění:</p>
<p>1. Nainstalovat Expect (na to vždycky zapomenu)</p>
<p>2. Vytvořit si nějaký soubor &#8211; třeba ssh_connect<br />
<code># touch ssh_connect</code></p>
<p>3. Nastavit mu patřičná práva<br />
<code># chmod +x ssh_connect</code></p>
<p>4. Vložit do něj následující obsah<br />
<code>#!/usr/bin/expect<br />
spawn ssh 194.213.45.210 -l hodza<br />
expect ".* password:"<br />
send "leila\r"<br />
expect "hodza@tux:~#"<br />
send "uptime\r"<br />
expect "hodza@tux:~#"<br />
send "exit\r"<br />
</code><br />
Co znamenají jednotlivé řádky ve skriptu?<br />
1. Cesta k programu expect (upravte si ji podle vašeho systému)<br />
2. Pokus připojit se na IP adresu 194.213.45.210 pomocí SSH s uživatelským jménem hodza<br />
3. Čekání na řetězec “.* password:”<br />
4. Zaslání uživatelského hesla “leila”<br />
5. Čekání na řetězec “hodza@tux:~#” (konzole)<br />
6. Zaslání požadavku na uptime<br />
7. Čekání na řetězec “hodza@tux:~#” (konzole)<br />
8. Ukončení programu expect</p>
<p>Toto je pouze ukázkový script &#8211; nejsou v něm zahrnuty vyhodnocovací podmínky &#8211; tj. SSH se může zeptat, zda-li stanici chceme přidat do <em>~/.ssh/known_hosts</em>, případně nemusí byt hostitel dostupný atd&#8230;</p>
<p>Nezapomeňte upravit patřičné části scriptu &#8211; tj. IP adresu (194.213.45.210) , přihlašovací jméno (hodza), heslo (leila) a prompt terminálu (hodza@tux:~#)</p>
<p>5. Skript spustíme v aktuálním adresáři zadáním<br />
<code># ./ssh_connect</code></p>
<p>Na konzoli by jste měli vidět něco takového</p>
<p><code>root@tux:# ./ssh_connect<br />
spawn ssh 194.213.45.210 -l hodza<br />
root@194.213.45.210's password:<br />
Last login: Fri Sep  8 15:21:40 2006 from 194.213.45.210<br />
Linux 2.6.17.11.<br />
hodza@tux:~# uptime<br />
15:54:58 up 218 days,  8:27,  3 users,  load average: 0.00, 0.03, 0.06<br />
hodza@tux:~#<br />
root@tux:~#</code></p>
]]></content:encoded>
			<wfw:commentRss>http://hodza.net/2007/02/03/ssh-bez-klicu-aneb-k-cemu-je-ten-expect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Přihlašování pomocí SSH klíčů</title>
		<link>http://hodza.net/2007/02/02/prihlasovani-pomoci-ssh-klicu/</link>
		<comments>http://hodza.net/2007/02/02/prihlasovani-pomoci-ssh-klicu/#comments</comments>
		<pubDate>Fri, 02 Feb 2007 22:56:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ssh]]></category>

		<guid isPermaLink="false">http://hodza.net/?p=13</guid>
		<description><![CDATA[Tytam jsou doby, kdy jsem měl přístup ke třem linuxovým serverům a vždy se na ně hlásil pomocí hesla. Dnes to již považuji za nebezpečné a navíc &#8211; pamatujte si několik set hesel&#8230; Jako ideální považuji přihlašování pomocí hesel zcela zrušit a zavést pouze přihlašování pomocí klíčů.  Že je to složité?  S mým [...]]]></description>
			<content:encoded><![CDATA[<p>Tytam jsou doby, kdy jsem měl přístup ke třem linuxovým serverům a vždy se na ně hlásil pomocí hesla. Dnes to již považuji za nebezpečné a navíc &#8211; pamatujte si několik set hesel&#8230; Jako ideální považuji přihlašování pomocí hesel zcela zrušit a zavést pouze přihlašování pomocí klíčů.  Že je to složité?  S mým skriptíkem opravdu ne!<span id="more-13"></span></p>
<p>1. Vygenerujeme si privátní dsa key<br />
<code># ssh-keygen -t dsa</code></p>
<p>2. Nahrajeme ho na server níže uvedeným příkazem a nastavíme mu správná práva<br />
Nezapomeňte nahradit uzivatel@masinka správnými údaji.</p>
<p><code># cat ~/.ssh/id_dsa.pub | ssh uzivatel@masinka "(mkdir .ssh&amp;&gt;/dev/null; \<br />
chmod 700 .ssh &amp;&amp; cat - &gt;&gt; .ssh/authorized_keys )&amp;&amp;chmod 600 .ssh/authorized_keys"</code></p>
]]></content:encoded>
			<wfw:commentRss>http://hodza.net/2007/02/02/prihlasovani-pomoci-ssh-klicu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

