» Blog

SSH - bezpieczny dostęp do powłoki systemowej

22.01.2016

SSH (ang. Secure Shell) to protokół umożliwiający bezpieczny dostęp do powłoki systemowej. Jako, że oferujemy SSH do wszystkich naszych kont bez dodatkowych opłat, niniejszym wpisem pragniemy zachęcić Państwa do zapoznania się z tą opcją, dzięki której możemy przyspieszyć operacje dokonywane na koncie hostingowym.

SSH

SSH — czy ja tego w ogóle potrzebuję?

Najpierw należy sobie odpowiedzieć na pytania o sposób, w jaki pracujemy z kontem hostingowym.

  1. Czy często instaluję skrypty typu Joomla, WordPress i inne?
  2. Czy często zostawiam włączony program FTP, by w tle wysyłał pliki na hosting?
  3. Czy często dokonuję drobnych poprawek w witrynie?
  4. Czy często kasuję wiele plików jednocześnie?
  5. Czy potrzebuję czasami zamienić jeden ciąg znaków na inny w wielu różnych plikach?

Jeżeli odpowiedź na conajmniej jedno pytanie brzmiała "tak", warto zainteresować się SSH, gdyż znacząco skróci ono czas wykonywanych operacji.

Przypadek 1 — instalacja skryptu

Zazwyczaj scenariusz postępowania wygląda następująco: pobieramy na swój komputer archiwum ze skryptem, rozpakowujemy go i za pomocą programu FTP plik po pliku kopiujemy strukturę katalogów na hosting. Prędkość wysyłki jest ograniczona szybkością naszego łącza oraz ilością plików.

Za pomocą SSH możemy całkowicie pominąć nasz komputer i wykorzystać szybkie łącze serwera, który obsługuje nasz hosting. Po prostu pobieramy archiwum skryptu bezpośrednio na nasze konto i rozpakowujemy go od razu w odpowiednie miejsce.

wget https://pl.wordpress.org/wordpress-4.4.1-pl_PL.tar.gz tar -xvf wordpress-4.4.1-pl_PL.tar.gz -C domains/mojadomena.pl/public_html/ --strip 1

Przypadek 2 — wysyłanie plików na hosting

Jeżeli plik jest bardzo duży i stworzyliśmy go na naszym komputerze — nie mamy wyjścia, musimy go jakoś wysłać. Jeżeli jednak ktoś do nas przysłał plik, aby umieścić go na hostingu, znów możemy zaoszczędzić czas, kopiując plik bezpośrednio z poczty na nasze konto hostingowe. Posłuży nam do tego program Mutt, który jest konsolowym klientem poczty. Aby się połączyć ze skrzynką pocztową, należy skorzystać z polecenia:

mutt -f imap://moj_login@host_serwera.pl/

I podać swoje hasło. Następnie wybrać wiadomość, która zawiera plik i nacisnąć klawisz "v", aby wyświetlić załączniki. Wybrany załącznik zapisujemy klawiszem "s".

Przypadek 3 — drobne poprawki

Konto SSH jest wyposażone w trzy edytory tekstu: Vim, Nano, i Joe. Pierwszy wymaga nieco nauki i ćwiczeń przed użyciem, ale jest najwygodniejszy w praktyce. Dzięki niemu możemy wprowadzać szybko drobne poprawki w witrynie, bez pobierania i wysyłania pliku przez FTP. Oczywiście mówimy tutaj o drobnych literówkach, błędach stylistycznych i innych, które nie wymagają przetestowania. Warto też wykonać kopię zapasową pliku przed edycją lub ustawić edytor w taki sposób, aby wykonywał ją dla nas automatycznie.

Przypadek 4 — kasowanie wielu plików jednocześnie

Wylistowanie kilkuset tysięcy plików jednocześnie oraz ich usunięcie może zająć za pomocą FTP wiele godzin lub wcale się nie powieźć. Nie jest wcale rzadkim przypadkiem, utworzenie na hostingu takiej ilości plików, np. przez źle ustawione cache witryny. W SSH rozwiążemy ten problem jednym poleceniem i zajmie to kilka, kilkanaście minut:

find domains/mojadomena.pl/public_html/cache -type f name "*.cache" -print -delete

Polecenie find pozwala na wypisanie plików o podanych kryteriach. W przykładzie powyżej wylistowaliśmy pliki, które mają rozszerzenie "*.cache" oraz wydaliśmy polecenie wypisania ich oraz usunięcia. Polecenie find jest na tyle ciekawe i użyteczne, że poświęcimy na jego działanie cały wpis.

Przypadek 5 — podmiana ciągów znaków

W tym przypadku przyjdzie nam z pomocą polecenie "sed", dzięki któremu można wykonywać edycję plików z poziomu konsoli. Przykładowo, chcemy zamienić słowo "czarny", na "biały" we wszystkich plikach katalogu "html":

sed -i 's/czarny/biały/g' ./domains/mojadomena.pl/public_html/html/*

Można też połączyć polecenie find porzedniego przykładu, z poleceniem sed. Chcemy zmienić treść we wszystkich plikach z rozszerzeniem html, które zostały zmodyfikowane w ciągu ostatnich 7 dni:

find ./domains/mojadomena.pl/public_html -type f -name "*.html" -ctime 1 -exec xargs -na sed -i 's/czarny/biały/g' {} \;

Wygląda to na skomplikowane, ale opracowanie takiego polecenia, gdy znamy już powyższe narzędzia, zajmie 2-3 minuty w najgorszym przypadku. Ręczna edycja plików może trwać wiele godzin.

Co jeszcze?

To tylko przegląd podstawowych czynności, które można wykonać dzięki SSH. Na naszych kontach jest dostęp do polecenia mysql, co daje możliwość operacji na bazach danych, mysqldump umożliwia tworzenie zrzutów baz danych, programy Git i SVN pozwalają na zarządzanie wersjami. SCP i Rsync na kopiowanie plików między serwerami.

Możliwości poszerza także dostęp do powłoki bash, dzięki której możemy zapisać kolejne polecenia w plikach, aby je potem uruchamiać bez wpisywania poleceń ręcznie.

Jeżeli udało nam się zaciekawić Państwa opcją SSH, warto zapoznać się z podstawowymi poleceniami, które opisaliśmy na naszej stronie pomocy.

Kategoria:    Porady