SSH!
SSH to rozkaz boga - myślę, że jest to najcenniejsze z możliwych rozkazów do nauki. Opcje mogą być dość zniechęcające, ale wygląda na to, że ciągle uczę się korzystać z nowych opcji wiersza polecenia dla SSH, których nigdy nie uważałem za konieczne. Być może w tym momencie korzystałem z nich wszystkich.
Im częściej go używasz, tym więcej się o nim uczysz. Możesz go użyć do robienia niesamowitych rzeczy.
Uwaga: WSZYSTKIE te rzeczy są możliwe do wykonania zdalnie bez konfiguracji na serwerze, z wyjątkiem uruchomienia serwera ssh.
Zamontuj system plików przez Internet
wyszukaj w sieci SSHFS
Przekaż polecenia .
Protokół SVN + SSH to Subversion ze zdalnego klienta na serwer bez uruchomionego na nim ŻADNEGO DEAMONA! Komenda SVN uruchamia serwer przez powłokę ssh i przekazuje informacje tam iz powrotem przez istniejący potok. Program rsync robi to samo, działa na serwerze bez demona rsync, uruchamiając się przez SSH. Łatwo jest pisać własne pliki bash, aby wykonywać podobne sztuczki.
Łańcuch, aby przejść przez zapory ogniowe
Używam tego cały czas, aby przeskakiwać przez mój serwer linux w domu do mojego komputera Mac.
Przekazywanie portów:
Wydaje się tylko umiarkowanie przydatne, dopóki nie uświadomisz sobie, że możesz odbić się przez zaporę domową i skonfigurować router w domu z pracy tak, jakbyś robił to z sieci domowej).
Przekaż żądania X:
To kolejny niesamowity. Z serwerem X działającym w systemie zdalnym lub bez niego, możesz uruchomić program X-Windows, a okno pojawi się na ekranie lokalnym. Wystarczy użyć przełącznika -X, to wszystko!
Ponieważ nie musisz mieć serwera X działającego na zdalnym serwerze, wpływ procesora na Twój serwer jest minimalny, możesz mieć serwer TINY Linux, który obsługuje ogromne aplikacje na potężnym komputerze z systemem Windows i cygwin / X.
Oczywiście VI i EMACS działają na SSH, ale kiedy pracuję w domu, czasami chcę więcej. Używam ssh -X, aby uruchomić kopię Eclipse! Jeśli Twój serwer ma większą moc niż laptop, masz GUI na swoim laptopie, ale kompilacje są wykonywane na serwerze, więc nie martw się o obciążenie systemu.
Uruchom w plikach wsadowych
(co oznacza uruchomienie lokalnego pliku wsadowego, który „robi rzeczy” w innych systemach):
Dwie rzeczy sprawiają, że ta jedna jest fajna. Jednym z nich jest wyeliminowanie monitów o hasło przy użyciu (bezpieczniejszych) kluczy szyfrowania. Po drugie, możesz podać polecenie w interfejsie SSH CLI. Użyłem tego na kilka interesujących sposobów - na przykład, gdy kompilacja kończy się niepowodzeniem na zdalnym serwerze, włączam SSH do mojego komputera i odtwarzam plik dźwiękowy).
Pamiętaj, że możesz przekierować dane wyjściowe ze zdalnego polecenia i użyć go w lokalnym pliku wsadowym, abyś mógł także lokalnie dostosowywać kompilację działającą na serwerze.
Wbudowany w Mac
Zarówno serwer, jak i klient są wbudowane zarówno w system Mac, jak i Linux. W przypadku komputerów Mac i Ubuntu włączenie serwera jest tak proste, jak znalezienie odpowiedniego pola wyboru.
Na komputerze zainstaluj cygwin lub cygwin / X (cygwin / X pozwoli ci przesłać dane wyjściowe x-window z komputera z systemem Linux na komputer z systemem Windows - instaluje serwer X)
Ważne wskazówki / plik konfiguracyjny
Nigdy nie używaj portu 22 w zaporze. Dostaniesz wiele prób włamań, po prostu nie warto. Po prostu pozwól zaporze przekierować inny port na twój serwer.
Istnieje wiele opcji konfiguracji, które pozwalają znacznie uprościć polecenia ssh. Oto mój przykład w pracy:
Host home
hostname billshome.hopto.org
Port=12345
user=bill
LocalForward=localhost:1025 mac:22
Kiedy piszę „ssh home” (nic więcej), działa to tak, jakbym napisał:
ssh -p 12345 bill@billshome.hopto.org
a następnie przesyła mój lokalny port 1025 do mojego systemu „mac” w domu. Powodem tego jest to, że mam inny wpis w moim pliku:
Host mac
hostname localhost
port=1025
więc gdy zrobię „ssh home” i nadal mam otwarte okno, mogę wpisać „ssh mac”, a komputer w tym miejscu będzie próbował połączyć się z własnym portem 1025, który został przesłany do „mac: 22 ”drugim poleceniem, więc połączy się z moim komputerem Mac w domu za pośrednictwem zapory.
Edycja - fajny skrypt!
Odkopałem stary skrypt, który po prostu uwielbiam - musiałem wrócić i opublikować go dla każdego, kto mógłby być zainteresowany. Skrypt nazywa się „authMe”
#!/bin/bash
if [ ! -f ~/.ssh/id_dsa.pub ]
then
echo 'id_dsa.pub does not exist, creating'
ssh-keygen -tdsa
fi
ssh $1 'cat >>.ssh/authorized_keys' <~/.ssh/id_dsa.pub
Jeśli masz ten skrypt w katalogu domowym i istnieje host, z którym możesz się połączyć (przez ssh), możesz wpisać „./authMe nazwa_hosta”.
W razie potrzeby utworzy dla ciebie publiczną / prywatną parę kluczy, następnie prześle ssh na inny komputer i skopiuje twój klucz publiczny (polecenie ssh poprosi o podanie hasła ...)
Po tym komenda SSH nie powinna już pytać o hasło podczas dołączania do tego zdalnego systemu, użyje klucza publicznego / prywatnego.
Jeśli Twój komputer zdalny nie zawsze jest bezpieczny, powinieneś rozważyć ustawienie „hasła” po wyświetleniu monitu.
Możesz także skonfigurować serwer ssh na drugim końcu, aby nie zezwalał na hasła tekstowe (tylko klucze) dla dodatkowego bezpieczeństwa.