<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1652388120954547357</id><updated>2012-01-21T13:10:02.895+01:00</updated><category term='git  ssh mercurial perl'/><category term='ssh reverse shell'/><category term='SOCKS ssh proxy'/><category term='git ssh'/><category term='rsync ssh sshfs'/><category term='ssh rsa shell'/><title type='text'>IT Varia</title><subtitle type='html'>Blog o IT i nie tylko.
Taki mój notatnik.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://itvaria.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1652388120954547357/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://itvaria.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>shark</name><uri>http://www.blogger.com/profile/08288416048223951155</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1652388120954547357.post-5874426035811783578</id><published>2011-04-23T13:12:00.011+02:00</published><updated>2011-04-25T01:25:34.305+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git  ssh mercurial perl'/><title type='text'>Mercurial na wspólnym koncie SSH dla wielu użytkowników.</title><content type='html'>Przedstawiona niżej technika dzielenia repozytorium umożliwia wielu użytkownikom korzystaniem z repozytorium Mercuriala(przy drobnej modyfikacji to samo dotyczy gita) na jednym koncie SSH bez udzielania wszystkim dostępu do shella. Jedyne co na naszym koncie będą mogli robić nasi współpracownicy to korzystanie z określonego repo. Technika ta jest przydatna w przypadkach gdy nie mamy możliwości by każdemu commiterowi przydzielić osobne konto shellowe.&lt;br /&gt;Oczywiście istnieją gotowe(często dość rozbudowane skrypty) korzystające z tej metody(np.Gitosis). &lt;br /&gt;W poniższym artykule chciałbym dotrzeć jednak do sedna działania, dzięki temu czytelnicy będą mogli wymyślić także inne zastosowania i udziwnienia.&lt;br /&gt;&lt;br /&gt;By umożliwić innej osobie korzystanie z naszego shella bez podawania jej hasła korzystamy z kluczy RSA. Jak dokładnie należy to zrobić napisałem w innym artykule(&lt;a href="http://itvaria.blogspot.com/2010/05/klucze-rsa.html"&gt;Klik&lt;/a&gt;). W stosunku do niego należy wykonać drobną modyfikację. Przed treścią klucza należy dopisać poniższą linijkę:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;no-port-forwarding,command="./script.pl"&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;"command" jako shella ustawia wybrane przez nas polecenie, przy okazji zabraniamy znajomym forwardowania za pomocą naszego konta(wszystkie możliwe opcje możemy znaleźć w manualu do sshd).&lt;br /&gt;&lt;br /&gt;Teraz pora na najistotniejszą część, tj. treść skryptu(w tym wypadku PERL), która może wyglądać np. tak:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/usr/bin/perl&lt;br /&gt;&lt;br /&gt;$command = $ENV{'SSH_ORIGINAL_COMMAND'};&lt;br /&gt;&lt;br /&gt;if($command eq "hg -R merktest serve --stdio") {&lt;br /&gt;exec($command);&lt;br /&gt;} else {&lt;br /&gt;print "Shell access denied!\n";&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Oczywiście jest to tylko przykładowy kod dla szczególnego przypadku(dostęp do repozytorium pod nazwą "merktest" ). Można go uogólnić, ulepszyć wedle uznania, wyobraźni i potrzeb. Nie daję tutaj rozbudowanego przykładu gdyż nie jest to celem artykułu ;).&lt;br /&gt;&lt;br /&gt;Jeśli chcemy zrobić coś analogicznego dla git'a zmieniamy warunek na:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;if ($command eq "git-upload-pack gitrepo")&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Oczywiście to również jest szczególny przypadek dla repozytorium o nazwie "gitrepo".&lt;br /&gt;&lt;br /&gt;Generalnie polecam eksperymenty.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1652388120954547357-5874426035811783578?l=itvaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itvaria.blogspot.com/feeds/5874426035811783578/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://itvaria.blogspot.com/2011/04/mercurial-na-wspolnym-koncie-ssh-dla.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1652388120954547357/posts/default/5874426035811783578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1652388120954547357/posts/default/5874426035811783578'/><link rel='alternate' type='text/html' href='http://itvaria.blogspot.com/2011/04/mercurial-na-wspolnym-koncie-ssh-dla.html' title='Mercurial na wspólnym koncie SSH dla wielu użytkowników.'/><author><name>shark</name><uri>http://www.blogger.com/profile/08288416048223951155</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1652388120954547357.post-5983679014558834170</id><published>2011-03-30T00:44:00.002+02:00</published><updated>2011-03-30T00:48:50.473+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOCKS ssh proxy'/><title type='text'>SOCKS proxy via SSH</title><content type='html'>Przydatne przy omijaniu limitów pobierania z różnych rapid-wynalazków i do kilku innych celów.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;ssh -D 12345 myuser@remote_ssh_server&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Przykładowe ustawienie w Chrome:&lt;br /&gt;&lt;br /&gt;Preferencje-&gt;Dla zaawansowanych-&gt;Ustawienia Proxy-&gt;Ręczne ustawienie Proxy&lt;br /&gt;Tam ustawiamy hosta i port. W tym wypadku będzie to odpowiednio: localhost, 12345.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1652388120954547357-5983679014558834170?l=itvaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itvaria.blogspot.com/feeds/5983679014558834170/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://itvaria.blogspot.com/2011/03/socks-proxy-via-ssh.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1652388120954547357/posts/default/5983679014558834170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1652388120954547357/posts/default/5983679014558834170'/><link rel='alternate' type='text/html' href='http://itvaria.blogspot.com/2011/03/socks-proxy-via-ssh.html' title='SOCKS proxy via SSH'/><author><name>shark</name><uri>http://www.blogger.com/profile/08288416048223951155</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1652388120954547357.post-4533419282341294333</id><published>2011-03-29T00:09:00.003+02:00</published><updated>2011-03-29T00:20:58.749+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git ssh'/><title type='text'>Dostęp do repozytorium Git'a na niestandardowym porcie SSH</title><content type='html'>Post z serii: "Dziś pytanie - dziś odpowiedź"&lt;br /&gt;&lt;br /&gt;Wbrew pozorom by rozwiązać tytułowy problem nie musimy zmieniać zanadto konfiguracji gita. Rozwiązaniem natomiast jest wyedytowanie pliku .ssh/config.&lt;br /&gt;Przykładowa konfiguracja:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt; Host MyRepo&lt;br /&gt;     HostName myrepo.pl&lt;br /&gt;     Port 666&lt;br /&gt;     User myuser&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Wtedy .git/config wygląda np. tak:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;[core]&lt;br /&gt;repositoryformatversion = 0&lt;br /&gt; filemode = true&lt;br /&gt; bare = false&lt;br /&gt; logallrefupdates = true&lt;br /&gt;[remote "origin"]&lt;br /&gt; fetch = +refs/heads/*:refs/remotes/origin/*&lt;br /&gt; url = MyRepo:RepoName&lt;br /&gt;[branch "master"]&lt;br /&gt; remote = origin&lt;br /&gt; merge = refs/heads/master&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;MyRepo - Etykieta której użyliśmy w pliku .ssh/config&lt;br /&gt;RepoName - Zdalny folder z repozytorium Git'a&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1652388120954547357-4533419282341294333?l=itvaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itvaria.blogspot.com/feeds/4533419282341294333/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://itvaria.blogspot.com/2011/03/dostep-do-repozytorium-gita-na.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1652388120954547357/posts/default/4533419282341294333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1652388120954547357/posts/default/4533419282341294333'/><link rel='alternate' type='text/html' href='http://itvaria.blogspot.com/2011/03/dostep-do-repozytorium-gita-na.html' title='Dostęp do repozytorium Git&apos;a na niestandardowym porcie SSH'/><author><name>shark</name><uri>http://www.blogger.com/profile/08288416048223951155</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1652388120954547357.post-2422980386486375532</id><published>2011-03-28T02:57:00.006+02:00</published><updated>2011-03-28T11:20:20.992+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rsync ssh sshfs'/><title type='text'>Szybka synchronizacja danych za pomocą RSync'a i sshfs</title><content type='html'>Przykładowy skrypt nie wymagający wielkiego komentarza:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;sshfs -p 666 user@farmachine.pl:/home/shark /home/shark/fardata/&lt;br /&gt;rsync -rvvl --exclude-from exclude.txt /home/shark/LOCAL-FOLDER/ /home/shark/fardata/REMOTE-FOLDER&lt;br /&gt;sudo umount /home/shark/fardata&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Krótkie wyjaśnienie:&lt;br /&gt;&lt;br /&gt;1.Za pomocą systemu plików sshfs montujemy zdalny zasób na w lokalnym folderze&lt;br /&gt;2.Za pomocą rsync'a(jak sama nazwa wskazuje) synchronizujemy zasoby(tu ważne by rozumieć, że kopiowanie następuje od lewa do prawa. Kolejność argumentów jak przy standardowym 'cp')&lt;br /&gt;3.Odmontowujemy, zamontowany wcześniej zasób&lt;br /&gt;4.Koniec ;)&lt;br /&gt;&lt;br /&gt;Opcje:&lt;br /&gt;&lt;br /&gt;r - kopiowanie rekurencyjne (Rekurencja - patrz: rekurencja ;))&lt;br /&gt;v - verbose&lt;br /&gt;l - kopiuj symlinki jako symlinki&lt;br /&gt;exclude-from - wyłączenie wybranych plików ze śledzenia przez rsync'a(w tym wypadku wystarczy wypisać te pliki w osobnych liniach w pliku exclude.txt)&lt;br /&gt;&lt;br /&gt;P.S. By móc korzystać z sshfs należy posiadać FUSE'a i pakiety zależne(apt-get sam załatwia sprawę)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Dla zainteresowanych:&lt;/span&gt; man sshfs, man rsync&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1652388120954547357-2422980386486375532?l=itvaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itvaria.blogspot.com/feeds/2422980386486375532/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://itvaria.blogspot.com/2011/03/szybka-synchronizacja-danych-za-pomoca.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1652388120954547357/posts/default/2422980386486375532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1652388120954547357/posts/default/2422980386486375532'/><link rel='alternate' type='text/html' href='http://itvaria.blogspot.com/2011/03/szybka-synchronizacja-danych-za-pomoca.html' title='Szybka synchronizacja danych za pomocą RSync&apos;a i sshfs'/><author><name>shark</name><uri>http://www.blogger.com/profile/08288416048223951155</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1652388120954547357.post-4686066390023644020</id><published>2010-08-03T00:37:00.006+02:00</published><updated>2010-08-03T00:51:40.034+02:00</updated><title type='text'>Przydatność screena</title><content type='html'>Dawno nic nie pisałem. Oczywiście nie będę opisywał czym screen jest - jestem na to zbyt leniwy, z resztą po co kserować wikipedie? :&gt; Artykuł będzie bardzo krótki i precyzyjny :P&lt;br /&gt;&lt;br /&gt;Opiszę ciekawy(moim zdaniem) przypadek użycia. Inspiracją powstania artykułu był problem postawiony przez kolegę. Problem prezentuje się następująco:&lt;br /&gt;&lt;br /&gt;Chcemy wykonać jakąś długotrwałą operację na naszym koncie shellowym(np. kopiowanie plików na inne konto :) ) ale nie chcemy zostawiać włączonego komputera.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Rozwiązanie:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;1.Logujemy się na konto&lt;br /&gt;2.Odpalamy screena ( polecenie screen)&lt;br /&gt;3.Odpalamy potrzebny program(np. mc)&lt;br /&gt;4.Kopiujemy co tam chcemy&lt;br /&gt;5.Ctrl+Z&lt;br /&gt;6.bg&lt;br /&gt;7.Ctrl+a d (puszczenie screena w tło)&lt;br /&gt;8.Wylogowujemy się&lt;br /&gt;9.Idziemy biegać ;)&lt;br /&gt;&lt;br /&gt;Kiedy wrócimy:&lt;br /&gt;&lt;br /&gt;1.Logujemy się&lt;br /&gt;2.screen -r&lt;br /&gt;3.fg&lt;br /&gt;4.Cieszymy się zakończoną operacją(lub czekamy dalej :P)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;KONIEC&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Do przeczytania:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/GNU_Screen"&gt;Screen&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1652388120954547357-4686066390023644020?l=itvaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itvaria.blogspot.com/feeds/4686066390023644020/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://itvaria.blogspot.com/2010/08/przydatnosc-screena.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1652388120954547357/posts/default/4686066390023644020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1652388120954547357/posts/default/4686066390023644020'/><link rel='alternate' type='text/html' href='http://itvaria.blogspot.com/2010/08/przydatnosc-screena.html' title='Przydatność screena'/><author><name>shark</name><uri>http://www.blogger.com/profile/08288416048223951155</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1652388120954547357.post-6831641709587199328</id><published>2010-07-13T00:48:00.014+02:00</published><updated>2010-07-17T18:32:12.480+02:00</updated><title type='text'>Podgląd obrazków w JS z wykorzystaniem &lt;input type="file"/&gt;</title><content type='html'>Tradycyjnie wpis będzie krótki, gdyż wolę pokazać trochę więcej kodu a mniej się rozpisywać. Nie mniej jednak należy się krótkie wyjaśnienie. Po co pisać notkę na tak precyzyjnie określony temat?&lt;br /&gt;Okazuje się, że rozwiązanie powyższego problemu nie jest tak oczywiste jak mogłoby się wydawać.&lt;br /&gt;Z przyczyn bezpieczeństwa większość przeglądarek(jak na razie jedynym wyjątkiem jaki znalazłem jest IE) uniemożliwia podejrzenie przez programistę JS pełnego parametru 'value' kontrolki input z typem "file". Jak zatem dostać się do pliku graficznego i wyświetlić go za pomocą JS jeszcze przed załadowaniem na serwer? Rozwiązaniem jest dobranie się do obrazka zapisanego w postaci base64(czyli po prostu surowych danych),utworzenie obiektu img oraz wyświetlenie go na ekranie. Koniec czczej pisaniny. Przed nami przykład.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;a name="line1"&gt; 1&lt;/a&gt; &lt;font color="4444FF"&gt;&amp;lt;&lt;/font&gt;script &lt;font color="#2040a0"&gt;&lt;strong&gt;type&lt;/strong&gt;&lt;/font&gt;&lt;font color="4444FF"&gt;=&lt;/font&gt;&lt;font color="#008000"&gt;&amp;quot;text/javascript&amp;quot;&lt;/font&gt; &lt;font color="#2040a0"&gt;&lt;strong&gt;src&lt;/strong&gt;&lt;/font&gt;&lt;font color="4444FF"&gt;=&lt;/font&gt;&lt;font color="#008000"&gt;&amp;quot;pixastic.core.js&amp;quot;&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;lt;&lt;/font&gt;&lt;font color="4444FF"&gt;/&lt;/font&gt;script&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="line2"&gt; 2&lt;/a&gt; &lt;font color="4444FF"&gt;&amp;lt;&lt;/font&gt;script &lt;font color="#2040a0"&gt;&lt;strong&gt;type&lt;/strong&gt;&lt;/font&gt;&lt;font color="4444FF"&gt;=&lt;/font&gt;&lt;font color="#008000"&gt;&amp;quot;text/javascript&amp;quot;&lt;/font&gt; &lt;font color="#2040a0"&gt;&lt;strong&gt;src&lt;/strong&gt;&lt;/font&gt;&lt;font color="4444FF"&gt;=&lt;/font&gt;&lt;font color="#008000"&gt;&amp;quot;actions/resize.js&amp;quot;&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;lt;&lt;/font&gt;&lt;font color="4444FF"&gt;/&lt;/font&gt;script&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;a name="line3"&gt; 3&lt;/a&gt; &lt;font color="4444FF"&gt;&amp;lt;&lt;/font&gt;script &lt;font color="#2040a0"&gt;&lt;strong&gt;type&lt;/strong&gt;&lt;/font&gt;&lt;font color="4444FF"&gt;=&lt;/font&gt;&lt;font color="#008000"&gt;&amp;quot;text/javascript&amp;quot;&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="line4"&gt; 4&lt;/a&gt; &lt;br /&gt;&lt;a name="line5"&gt; 5&lt;/a&gt; &lt;br /&gt;&lt;a name="line6"&gt; 6&lt;/a&gt;         &lt;strong&gt;function&lt;font color="ff0000"&gt; loadImage&lt;/font&gt;&lt;font color="2040a0"&gt;()&lt;/font&gt; {&lt;/strong&gt;&lt;br /&gt;&lt;a name="line7"&gt; 7&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;a name="line8"&gt; 8&lt;/a&gt;         &lt;strong&gt;var&lt;/strong&gt; img &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;strong&gt;new&lt;/strong&gt; &lt;font color="#2040a0"&gt;&lt;strong&gt;Image&lt;/strong&gt;&lt;/font&gt;()&lt;font color="4444FF"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;a name="line9"&gt; 9&lt;/a&gt;         &lt;br /&gt;&lt;br /&gt;&lt;a name="line10"&gt;10&lt;/a&gt;  img.onload &lt;font color="4444FF"&gt;=&lt;/font&gt; function() &lt;font color="4444FF"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;&lt;a name="line11"&gt;11&lt;/a&gt; &lt;br /&gt;&lt;a name="line12"&gt;12&lt;/a&gt;                 Pixastic.process(img, &lt;font color="#008000"&gt;&amp;quot;resize&amp;quot;&lt;/font&gt;, &lt;font color="4444FF"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="line13"&gt;13&lt;/a&gt;                         &lt;font color="#2040a0"&gt;&lt;strong&gt;width&lt;/strong&gt;&lt;/font&gt; : &lt;font color="#FF0000"&gt;100&lt;/font&gt;,&lt;br /&gt;&lt;a name="line14"&gt;14&lt;/a&gt;                         &lt;font color="#2040a0"&gt;&lt;strong&gt;height&lt;/strong&gt;&lt;/font&gt; : &lt;font color="#FF0000"&gt;100&lt;/font&gt;&lt;br /&gt;&lt;a name="line15"&gt;15&lt;/a&gt;                 &lt;font color="4444FF"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;)&lt;font color="4444FF"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="line16"&gt;16&lt;/a&gt; &lt;br /&gt;&lt;a name="line17"&gt;17&lt;/a&gt;         &lt;font color="4444FF"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;&lt;a name="line18"&gt;18&lt;/a&gt; &lt;br /&gt;&lt;a name="line19"&gt;19&lt;/a&gt; &lt;br /&gt;&lt;a name="line20"&gt;20&lt;/a&gt; &lt;br /&gt;&lt;a name="line21"&gt;21&lt;/a&gt;         &lt;strong&gt;var&lt;/strong&gt; imgsource&lt;font color="4444FF"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="line22"&gt;22&lt;/a&gt; &lt;br /&gt;&lt;a name="line23"&gt;23&lt;/a&gt;                 &lt;strong&gt;if&lt;/strong&gt;(&lt;font color="#2040a0"&gt;&lt;strong&gt;document&lt;/strong&gt;&lt;/font&gt;.getElementById(&lt;font color="#008000"&gt;'filefield'&lt;/font&gt;).files) &lt;font color="4444FF"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;&lt;a name="line24"&gt;24&lt;/a&gt;                 imgsource &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;&lt;strong&gt;document&lt;/strong&gt;&lt;/font&gt;.getElementById(&lt;font color="#008000"&gt;'filefield'&lt;/font&gt;).files.item(&lt;font color="#FF0000"&gt;0&lt;/font&gt;).getAsDataURL()&lt;font color="4444FF"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="line25"&gt;25&lt;/a&gt;                 &lt;font color="4444FF"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;a name="line26"&gt;26&lt;/a&gt; &lt;br /&gt;&lt;a name="line27"&gt;27&lt;/a&gt; &lt;br /&gt;&lt;a name="line28"&gt;28&lt;/a&gt;         datastring &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;strong&gt;new&lt;/strong&gt; String(imgsource)&lt;font color="4444FF"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="line29"&gt;29&lt;/a&gt;         mime &lt;font color="4444FF"&gt;=&lt;/font&gt; datastring.&lt;font color="a52a2a"&gt;&lt;strong&gt;substring&lt;/strong&gt;&lt;/font&gt;(&lt;font color="#FF0000"&gt;0&lt;/font&gt;, &lt;font color="#FF0000"&gt;10&lt;/font&gt;)&lt;font color="4444FF"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;a name="line30"&gt;30&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;a name="line31"&gt;31&lt;/a&gt;         &lt;strong&gt;if&lt;/strong&gt;(mime&lt;font color="4444FF"&gt;=&lt;/font&gt;&lt;font color="4444FF"&gt;=&lt;/font&gt;&lt;font color="#008000"&gt;'data:image'&lt;/font&gt;) &lt;font color="4444FF"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;&lt;a name="line32"&gt;32&lt;/a&gt;         img.&lt;font color="#2040a0"&gt;&lt;strong&gt;src&lt;/strong&gt;&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; imgsource&lt;font color="4444FF"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="line33"&gt;33&lt;/a&gt;         &lt;font color="#2040a0"&gt;&lt;strong&gt;document&lt;/strong&gt;&lt;/font&gt;.getElementById(&lt;font color="#008000"&gt;'my'&lt;/font&gt;).innerHTML&lt;font color="4444FF"&gt;=&lt;/font&gt;&lt;font color="#008000"&gt;&amp;quot;&amp;quot;&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;a name="line34"&gt;34&lt;/a&gt; &lt;br /&gt;&lt;a name="line35"&gt;35&lt;/a&gt;         &lt;font color="a52a2a"&gt;&lt;strong&gt;setTimeout&lt;/strong&gt;&lt;/font&gt;(function() &lt;font color="4444FF"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="line36"&gt;36&lt;/a&gt;         &lt;font color="#2040a0"&gt;&lt;strong&gt;document&lt;/strong&gt;&lt;/font&gt;.getElementById(&lt;font color="#008000"&gt;'my'&lt;/font&gt;).appendChild(img)&lt;font color="4444FF"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;a name="line37"&gt;37&lt;/a&gt; &lt;br /&gt;&lt;a name="line38"&gt;38&lt;/a&gt;         &lt;font color="4444FF"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;&lt;a name="line39"&gt;39&lt;/a&gt;         ,&lt;font color="#FF0000"&gt;50&lt;/font&gt;)&lt;font color="4444FF"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="line40"&gt;40&lt;/a&gt; &lt;br /&gt;&lt;a name="line41"&gt;41&lt;/a&gt;         &lt;font color="4444FF"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt; &lt;strong&gt;else&lt;/strong&gt; &lt;font color="4444FF"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;&lt;font color="a52a2a"&gt;&lt;strong&gt;alert&lt;/strong&gt;&lt;/font&gt;(&lt;font color="#008000"&gt;&amp;quot;Niepoprawny typ pliku!!&amp;quot;&lt;/font&gt;)&lt;font color="4444FF"&gt;;&lt;/font&gt; &lt;font color="4444FF"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="line42"&gt;42&lt;/a&gt; &lt;br /&gt;&lt;a name="line43"&gt;43&lt;/a&gt; &lt;br /&gt;&lt;a name="line44"&gt;44&lt;/a&gt;         &lt;font color="4444FF"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;&lt;a name="line45"&gt;45&lt;/a&gt; &lt;br /&gt;&lt;a name="line46"&gt;46&lt;/a&gt;         &lt;font color="4444FF"&gt;&amp;lt;&lt;/font&gt;&lt;font color="4444FF"&gt;/&lt;/font&gt;script&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;a name="line47"&gt;47&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;a name="line48"&gt;48&lt;/a&gt;         &lt;font color="4444FF"&gt;&amp;lt;&lt;/font&gt;html&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;a name="line49"&gt;49&lt;/a&gt; &lt;br /&gt;&lt;a name="line50"&gt;50&lt;/a&gt;             &lt;font color="4444FF"&gt;&amp;lt;&lt;/font&gt;head&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;a name="line51"&gt;51&lt;/a&gt;             &lt;font color="4444FF"&gt;&amp;lt;&lt;/font&gt;&lt;font color="4444FF"&gt;/&lt;/font&gt;head&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;a name="line52"&gt;52&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;a name="line53"&gt;53&lt;/a&gt;         &lt;font color="4444FF"&gt;&amp;lt;&lt;/font&gt;body&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;a name="line54"&gt;54&lt;/a&gt; &lt;br /&gt;&lt;a name="line55"&gt;55&lt;/a&gt;         &lt;font color="4444FF"&gt;&amp;lt;&lt;/font&gt;span id&lt;font color="4444FF"&gt;=&lt;/font&gt;&lt;font color="#008000"&gt;'my'&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;lt;&lt;/font&gt;&lt;font color="4444FF"&gt;/&lt;/font&gt;span&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;a name="line56"&gt;56&lt;/a&gt; &lt;br /&gt;&lt;a name="line57"&gt;57&lt;/a&gt;         &lt;font color="4444FF"&gt;&amp;lt;&lt;/font&gt;&lt;font color="4444FF"&gt;/&lt;/font&gt;body&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="line58"&gt;58&lt;/a&gt;  &lt;font color="4444FF"&gt;&amp;lt;&lt;/font&gt;&lt;font color="4444FF"&gt;/&lt;/font&gt;html&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;syntax highlighted by &lt;a href="http://www.palfrader.org/code2html"&gt;Code2HTML&lt;/a&gt;, v. 0.9.1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Wprawne oko zauważy, że w powyższym kodzie jest coś więcej niż tylko rozwiązanie problemu z tytułu. W istocie tak jest. W przykładzie zastosowałem bibliotekę 'Pixastic'(wiele ciekawych zastosowań - polecam), które posłużyła mi do stworzenia miniaturki obrazka. Dodatkowo kod zawiera zabezpieczenie przed omyłkowym wprowadzeniem pliku który nie zawiera grafiki a także timeout który daje czas na zmniejszenie obrazka. Jeśli ktoś jest ciekawy co się stanie bez timeoutu i po zmianie innych opcji - zapraszam do eksperymentowania.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Aktualizacja:&lt;/b&gt; Okazuje się, że zaprezentowana metoda działa jedynie w FF3!!&lt;br /&gt;Jeśli uda mi się znaleźć jakiś bardziej uniwersalny sposób(w co wątpię) lub chociaż&lt;br /&gt;obejścia dla innych przeglądarek coś o tym napiszę.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Do przeczytania&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.pixastic.com/"&gt;Pixastic&lt;/a&gt;&lt;br /&gt;&lt;a href="http://pl.wikipedia.org/wiki/Base64"&gt;Base64&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ab-d.fr/date/2008-07-12/"&gt;Inspiracja powyższej notki - dla znających j.francuski&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1652388120954547357-6831641709587199328?l=itvaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itvaria.blogspot.com/feeds/6831641709587199328/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://itvaria.blogspot.com/2010/07/podglad-obrazkow-w-js-z-wykorzystaniem.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1652388120954547357/posts/default/6831641709587199328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1652388120954547357/posts/default/6831641709587199328'/><link rel='alternate' type='text/html' href='http://itvaria.blogspot.com/2010/07/podglad-obrazkow-w-js-z-wykorzystaniem.html' title='Podgląd obrazków w JS z wykorzystaniem &amp;lt;input type=&quot;file&quot;/&amp;gt;'/><author><name>shark</name><uri>http://www.blogger.com/profile/08288416048223951155</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1652388120954547357.post-20815159686499</id><published>2010-07-05T02:32:00.004+02:00</published><updated>2010-07-05T03:22:35.249+02:00</updated><title type='text'>Mac i Linux</title><content type='html'>Niniejszy artykuł znów będzie krótki. Pozwolę sobie przedstawić bardzo prosty sposób instalacji(i uruchomienia) Linuksa na lanserskim sprzęcie wyprodukowanym przez firmę Steve'a Jobsa.&lt;br /&gt;W sieci krąży mnóstwo metod korzystających z narzędzia rEFIt.&lt;br /&gt;Co jednak zrobić gdy w ogóle nie chcemy korzystać z MacOSX ani jego bootloadera na naszym błyszczącym pudełku?&lt;br /&gt;Sposób jest prosty i niektórym znany. Jedyne co należy zrobić to zmienić format tablicy partycji(a właściwie utworzyć nową tablicę) z GPT domyślnego dla współczesnych MACów dla bliższy PCtowcom format MBR(w programie parted - msdos). Można wykonać tą operację za pomocą instalatora MacOSX(sposób banalny) lub pod Linuksem(instalatorem lub LiveCD) za pomocą programu GNU Parted(sposób niewiele trudniejszy).&lt;br /&gt;Jak używa się instalatora MacOSX chyba nie muszę opisywać, jeśli chodzi o program GNU Parted polecam przeczytanie manuala. Nie muszę chyba wspominać o konieczności zarchiwizowania istotnych danych.&lt;br /&gt;Po wykonaniu tej czynności można już całkiem zwyczajnie instalować system wraz z bootloaderem który należy umieścić w MBR. Po zakończeniu procesu i resecie naszym oczom ukaże się białe tło a po chwili(niestety aż kilkanaście sekund) ekran bootloadera.&lt;br /&gt;&lt;br /&gt;UWAGA! Sposób testowany na Macu Mini i dystrybucji Debian Lenny.&lt;br /&gt;&lt;br /&gt;Do przeczytania:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/GUID_Partition_Table"&gt;GPT&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Master_boot_record"&gt;MBR&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.gnu.org/software/parted/manual/html_mono/parted.html"&gt;GNU Parted&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Extensible_Firmware_Interface"&gt;EFI&lt;/a&gt;&lt;br /&gt;&lt;a href="http://refit.sourceforgenet/"&gt;rEFIt&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1652388120954547357-20815159686499?l=itvaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itvaria.blogspot.com/feeds/20815159686499/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://itvaria.blogspot.com/2010/07/mac-i-linux.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1652388120954547357/posts/default/20815159686499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1652388120954547357/posts/default/20815159686499'/><link rel='alternate' type='text/html' href='http://itvaria.blogspot.com/2010/07/mac-i-linux.html' title='Mac i Linux'/><author><name>shark</name><uri>http://www.blogger.com/profile/08288416048223951155</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1652388120954547357.post-4033519640388309312</id><published>2010-06-11T00:49:00.008+02:00</published><updated>2010-06-13T22:38:12.717+02:00</updated><title type='text'>Upgrade do Ubuntu 10.04 i problem z Apache'em</title><content type='html'>Po upgradzie mojego Ubuntu do 10.04 LTS pojawił się bardzo irytujący problem. Apache przestał przetwarzać pliki php umieszczone w folderach użytkownika.&lt;br /&gt;Przykładowo: http://localhost/~user/example.php nie chciało działać. Żeby było śmieszniej http://localhost/example.php działało bez problemu.&lt;br /&gt;&lt;br /&gt;Na szczęście tym razem pomógł Ardvark(&lt;a href="http://www.vark.com"&gt;www.vark.com&lt;/a&gt;). Przy okazji polecam ten serwis.&lt;br /&gt;&lt;br /&gt;Okazuje się, że aktualizacja wprowadziła pewne "usprawnienie" do konfiguracji Apache'a.&lt;br /&gt;&lt;br /&gt;Rozwiązaniem jest edycja pliku /etc/apache2/mods-enabled/php5.conf i zakomentowanie następujących linijek:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;IfModule mod_userdir.c&amp;gt;&lt;br /&gt;&amp;lt;Directory /home/*/public_html&amp;gt;&lt;br /&gt;php_admin_value engine Off&lt;br /&gt;&amp;lt;/Directory&amp;gt;&lt;br /&gt;&amp;lt;/IfModule&gt;&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Potem wystarczy zrestartować serwer np. tak:&lt;br /&gt;&lt;br /&gt;sudo /etc/init.d/apache2 restart&lt;br /&gt;&lt;br /&gt;Po wykonaniu powyższych czynności wszystko wraca do normy i można już spokojnie kodzić w php ;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Źródło:&lt;/i&gt;&lt;a href="http://ubuntuforums.org/showthread.php?p=9375322"&gt;ubuntuforums&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1652388120954547357-4033519640388309312?l=itvaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itvaria.blogspot.com/feeds/4033519640388309312/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://itvaria.blogspot.com/2010/06/upgrade-do-ubuntu-1004-i-problem-z.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1652388120954547357/posts/default/4033519640388309312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1652388120954547357/posts/default/4033519640388309312'/><link rel='alternate' type='text/html' href='http://itvaria.blogspot.com/2010/06/upgrade-do-ubuntu-1004-i-problem-z.html' title='Upgrade do Ubuntu 10.04 i problem z Apache&apos;em'/><author><name>shark</name><uri>http://www.blogger.com/profile/08288416048223951155</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1652388120954547357.post-3656965478654862091</id><published>2010-05-28T21:29:00.006+02:00</published><updated>2010-05-30T01:44:49.235+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ssh rsa shell'/><title type='text'>Klucze RSA</title><content type='html'>Poniższa notka będzie jeszcze krótsza od poprzedniej ;&gt;&lt;br /&gt;Teraz do rzeczy. Tworzenie kluczy to dość prosty proces.&lt;br /&gt;Przebiega następująco:&lt;br /&gt;&lt;br /&gt;Wchodzimy do katalogu .ssh w naszym katalogu domowym i wpisujemy:&lt;br /&gt;&lt;br /&gt;ssh-keygen&lt;br /&gt;&lt;br /&gt;Generator zapyta najpierw o nazwę pliku,do którego zostanie zapisany klucz. Domyślnie będzie to id_rsa(klucz prywatny), jeśli chcemy zmienić nazwę pliku wpisujemy coś, jeśli nie wystarczy ENTER. Klucz publiczny będzie nazywać się prawie tak samo - dodatkowo posiada rozszerzenie "pub". Kolejnym krokiem jest wpisanie hasła(dwukrotnie), przy czym nie jest ono konieczne(jeżeli nie chcemy hasła wystarczy ENTER). W ten sposób utworzyliśmy klucz.&lt;br /&gt;Teraz jeśli chcemy móc logować się na zdalnego hosta za pomocą klucza powinniśmy wysłać na niego nasz klucz publiczny(id_rsa.pub).&lt;br /&gt;Na zdalnym hoście kopiujemy ten plik do katalogu .ssh(plikowi możemy zmienić nazwę - to nie ma znaczenia) i wykonujemy:&lt;br /&gt;&lt;br /&gt;cat id_rsa.pub &gt;&gt; authorized_keys&lt;br /&gt;&lt;br /&gt;(id_rsa.pub to oczywiście nasz plik z kluczem publicznym)&lt;br /&gt;&lt;br /&gt;Od tej pory możemy bezpiecznie logować się na nasze konto shellowe.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1652388120954547357-3656965478654862091?l=itvaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itvaria.blogspot.com/feeds/3656965478654862091/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://itvaria.blogspot.com/2010/05/klucze-rsa.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1652388120954547357/posts/default/3656965478654862091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1652388120954547357/posts/default/3656965478654862091'/><link rel='alternate' type='text/html' href='http://itvaria.blogspot.com/2010/05/klucze-rsa.html' title='Klucze RSA'/><author><name>shark</name><uri>http://www.blogger.com/profile/08288416048223951155</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1652388120954547357.post-4398512819103228921</id><published>2010-05-27T17:39:00.004+02:00</published><updated>2010-05-28T21:52:42.980+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ssh reverse shell'/><title type='text'>Reverse Shell</title><content type='html'>To będzie bardzo krótki ale za to konkretny wpis. ;]&lt;br /&gt;Chciałbym przedstawić ciekawą możliwość, którą daje protokół ssh o której pewnie nie każdy wie.&lt;br /&gt;&lt;br /&gt;Rozważmy następującą sytuację:&lt;br /&gt;&lt;br /&gt;Mamy dwa hosty - A i B. Komputer A znajduje się w sieci wewnętrznej za maskaradą, komputer B jest w sieci publicznej. Do wykonania poniższych operacji nie potrzebujemy konta administratora. Chcemy z komputera B zalogować się na shella komputera A. Sytuacja odwrotna jest oczywiście trywialna. Jak jednak dostać się do shella komputera znajdującego się w sieci prywatnej?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Rozwiązanie:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;user@A:~$ ssh -NR 3333:localhost:22 user@B &lt;br /&gt;&lt;br /&gt;W ten sposób ustanawiamy połączenie w trybie odwrotnego shella(-R), przełącznik -N służy do tego by nie otwierać shella w trybie interaktywnym. To połączenie będzie nam służyło jedynie do ustawienia ścieżki zwrotnej. Jak wiadomo nie możemy bez dodatkowych operacji połączyć się z hostem w sieci prywatnej. Pierwszy numer portu to port wejściowy komputera A(kiedy nie mamy roota musi być wyższy niż 1024), drugi to oczywiście port SSH. &lt;br /&gt;&lt;br /&gt;user@B:~$ ssh user@localhost -p 3333&lt;br /&gt;&lt;br /&gt;Z hostem w sieci wewnętrznej łączymy się tak jak powyżej. Przełącznik -p wskazuje port  ten sam który ustawiliśmy wcześniej.&lt;br /&gt;&lt;br /&gt;Jeżeli przeszkadza nam ciągłe wpisywanie haseł możemy skorzystać z kluczy RSA. Wtedy możemy nawet dołączyć pierwsze polecenie do skryptów startowych hosta A.&lt;br /&gt;Zagadnienie to nie jest zbyt skomplikowane ale na wszelki wypadek opiszę je w następnej notce.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Źródło:&lt;/i&gt; &lt;a href="http://www.plenz.com/reverseshell"&gt;http://www.plenz.com/reverseshell&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1652388120954547357-4398512819103228921?l=itvaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itvaria.blogspot.com/feeds/4398512819103228921/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://itvaria.blogspot.com/2010/05/reverse-shell.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1652388120954547357/posts/default/4398512819103228921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1652388120954547357/posts/default/4398512819103228921'/><link rel='alternate' type='text/html' href='http://itvaria.blogspot.com/2010/05/reverse-shell.html' title='Reverse Shell'/><author><name>shark</name><uri>http://www.blogger.com/profile/08288416048223951155</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
