Jak korzystać z SSH (polecenia ssh & rsync)?

44

Jak mogę SSH ze zdalnym serwerem, aby móc przeglądać pliki i edytować je? Mam nazwę użytkownika i hasło do użycia.

el_pup_le
źródło

Odpowiedzi:

49

SSH jest domyślnie dostępny we wszystkich wersjach Ubuntu, więc oszczędzasz na instalowaniu go (+1 za to, że już tam jest;))

Z wyjątkiem oczywiście przypadku, gdy chcesz mieć serwer SSH dla swojego serwera Ubuntu. W takim przypadku zrobiłbyś to

sudo apt-get install openssh-server 

co powinno uczynić twój komputer / serwer gotowym na serwer ssh.

Korzystanie z niego jest dość łatwe:

ssh USER@SITEna przykład, jeśli moja nazwa użytkownika to cyrex, a strona to ubuntu.com , zrobiłbyś to:

ssh [email protected]

Powiedzmy teraz, że chcesz skopiować plik wywoływany bubblegum.txtz komputera na stronę Ubuntu i chcesz zostawić ten plik w /var/wwwfolderze na stronie Ubuntu. możesz to zrobić (zakładając, że użytkownik ma wystarczającą liczbę uprawnień na stronie Ubuntu), używając Brother SSH, SCP (który jest również domyślnie dostępny w Ubuntu):

scp bubblegum.txt [email protected]:/var/www 

Zwróć uwagę :między USER @ SITE a folderem, w którym chcesz go skopiować. To ten, który oddziela oba elementy.

Powiedzmy teraz, że przesyłasz ogromny plik za pomocą scp, a wtedy dzieje się najgorsze, świat eksploduje. Jak możesz dalej przesyłać ten plik na serwer. Potem masz starszego brata SCP, rsync (domyślnie w Ubuntu). Na wiele sposobów scp i rsync robią to samo, ale są między nimi duże różnice:

  • rsync może przesyłać częściowe pliki pozostawione z rsync lub scp po rozłączeniu lub dominacji nad światem.
  • rsync może pokazywać postęp znacznie lepiej niż scp
  • rsync może zoptymalizować przesyłanie w taki sposób, że można zaoszczędzić sekundy lub minuty na przesyłaniu. Pod koniec przesyłania pokazuje również, ile zaoszczędziłeś.

W każdym razie, w przypadku, gdy scp nie mógł załadować całego pliku, rsync przychodzi na ratunek. (Podziękowania dla Marco Ceppi za wskazówkę. Głosujcie na jego komentarz, jeśli lubicie koty ... i / lub psy)

Powiedzmy, że zrobiłeś wzmiankę o przesyłaniu powyżej z scp i osiągnął 60%. Jak możesz kontynuować w tych 60%, nie tracąc czasu na przesyłanie. Zrobiłbyś to:

rsync --progress --partial bubblegum.txt [email protected]:/var/www  

To mówi rsync, aby pokazał postęp w przyjemny dla człowieka sposób za pomocą --progressflagi. Mówi także rsync, aby sprawdził i kontynuował od miejsca, w którym plik bubblegum.txt dotarł z --partialflagą. Możesz także uprościć ilość do zapisania za pomocą parametru -P, który jest taki sam jak --progress i --partial, więc powyższe wygląda następująco:

rsync -P bubblegum.txt [email protected]:/var/www  

Możesz nawet CTRL+ Cprzesłać i wznowić, wykonując polecenie z rsync powyżej. Bardzo fajnie mieć możliwość wznowienia czegoś w dowolnym momencie i dowolnej ilości razy.

Aby uzyskać więcej informacji o rsync, który jest domyślnie dostarczany z Ubuntu, możesz wpisać następujące polecenia terminala:

man rsync  
info rsync  
rsync --help

Teraz określ port dla SSH. Aby to określić, możesz to zrobić w następujący sposób:

ssh [email protected] -p PORT. Na przykład: ssh [email protected] -p 1234aby powiedzieć mu, aby używał portu 1234 dla usługi SSH. Aby to działało, należy to najpierw skonfigurować na serwerze.

Aby go skonfigurować, po prostu otwórz na serwerze plik ssh_config w następujący sposób: nano /etc/ssh/ssh_configi zmień wiersz z komunikatem # port 22na inny port. Pamiętaj również, aby usunąć komentarz z tego wiersza. Powinno to wyglądać tak: port 1234w przypadku dla powyższego przykładu.

Teraz po prostu uruchom ponownie usługę ssh na serwerze i gotowe. Aby ponownie uruchomić usługę, wykonaj następujące czynności:

sudo restart ssh

lub

sudo /etc/init.d/ssh restart

UWAGA - Możesz również użyć SSH z narzędzi GUI, takich jak filezillaktóre oferują opcję użycia ssh zamiast ftp. Dostęp do ssh można również uzyskać z poziomu menu Ubuntu:

wprowadź opis zdjęcia tutaj

który daje dostęp do kilku opcji, w tym udostępniania systemu Windows, SSH i FTP :

wprowadź opis zdjęcia tutaj

Aby uzyskać więcej informacji o SSH, możesz użyć jednego z następujących poleceń w konsoli w polu Ubuntu:

man ssh  
info ssh  
ssh --help
Luis Alvarado
źródło
Do czego masz przykro?
Luis Alvarado,
23

Jeśli chcesz przeglądać serwer za pomocą Nautilus, tak jak w przypadku plików na komputerze lokalnym:

  1. Otwórz Nautilus („Folder domowy”)
  2. Przejdź do „Plik” -> „Połącz z serwerem”

    Połączyć się z serwerem

  3. Wybierz „SSH” w „Rodzaj usługi”

  4. Umieść adres IP lub domenę w polu „Serwer”

    Wybierz SSH

  5. Dodaj swoją nazwę użytkownika i zaznacz „Dodaj zakładkę”, jeśli chcesz zapisać lokalizację w swoich zakładkach.

Folder powinien otworzyć się właśnie dla Ciebie.

Jamesadney
źródło
Na Kubuntu można zrobić to samo z Krusaderem .
Adobe,
6

Możesz użyć sshfsdo zamontowania zdalnego katalogu w lokalnym systemie plików.

Zobacz https://help.ubuntu.com/community/SSHFS :

Korzystanie z wiersza polecenia

Teraz, zakładając, że masz serwer SSH działający na zdalnym komputerze, po prostu uruchom komendę SSHFS, aby zamontować katalog zdalny. W tym przykładzie zdalny katalog to / projects na zdalnym hoście daleko. Lokalny punkt montowania to ~ / far_projects.

mkdir ~/far_projects
sshfs -o idmap=user $USER@far:/projects ~/far_projects

Aby odmontować,

fusermount -u ~/far_projects

Aby dodać go do pliku / etc / fstab,

sshfs#$USER@far:/projects /home/$USER/far_projects fuse defaults,idmap=user 0 0

Zauważ, że musisz zmienić $ USER na swoją nazwę użytkownika podczas edycji fstab, ale nie jest to konieczne podczas wpisywania poleceń (w tym przypadku powłoka robi to za Ciebie).

Stacey Richards
źródło
4

Zakładając, że serwer ssh jest już skonfigurowany, otwórz terminal i wpisz:

ssh username@hostname

Zostaniesz poproszony o podanie hasła; po prostu wpisz to. Jeśli potrzebujesz numeru portu, dodaj -p PORTNUM.

Dang Khoa
źródło
2

Jeśli możesz użyć Vima, Pico itp., Możesz użyć terminala:

ssh [email protected]

Podaj hasło i już jesteś. Stamtąd jest jak zwykły terminal, tyle że nie masz GUI.

Uwaga, można dodać opcję „-x”, a jeśli serwer posiada skonfigurowany serwer X, to można uruchamiać programy GUI. Po prostu wpisz ich nazwę, jeśli dodałeś -X, a otworzy się okno GUI.

Teraz prawdopodobnie będziesz chciał skonfigurować logowanie bez hasła. Jeśli nie masz jeszcze klucza, wpisz ssh-keygeni po prostu naciśnij klawisz Enter, aby przejść do wszystkich wartości domyślnych. Więc zrób ssh-copy-id [email protected]. Gdy to zrobisz, po prostu wpisz ssh [email protected]i nie musisz wpisywać hasła!

Jeśli nazwa użytkownika jest taka sama jak nazwa użytkownika laptopa, nie jest to konieczne MYUSER@. Możesz po prostu zrobić ssh mysite.com. Możesz także użyć tej -l MYUSERopcji zamiastMYUSER@

Jeśli chcesz mieć GUI, Nautilus może to zrobić. Plik ->Połącz z serwerem ->[wybierz „SSH”, a następnie wypełnij dane logowania] -> Połącz.

Jeśli chcesz po prostu skopiować pojedynczy plik, użyj scp [bezpieczna kopia].
scp [email protected]:path/to/file.dat ./

Spowoduje to skopiowanie pliku „~ / path / to / file.dat” do bieżącego katalogu. Uwaga: jeśli nie masz ukośnika ani tyldy po :, będzie to działało tak, jakbyś był w swoim katalogu domowym [ ~/]. Jeśli chcesz przesłać, scp ./local_file.dat [email protected]: umieści to w twoim domu, reż.

Matt
źródło
0

ssh -X -C user@host nautilus --no-desktop przejść w tryb GUI :)

Morgie
źródło
Lokalny Nautilus może po prostu połączyć się z udziałem SSH. Zdalne uruchamianie Nautilusa nie jest konieczne. Właściwie nie poleciłbym tego robić. Twórcza sugestia, ale wciąż -1
Jo-Erlend Schinstad