SSH i SCP¶
SSH (Secure Shell) pozwala bezpiecznie zalogować się na zdalny komputer i pracować w jego terminalu. SCP (Secure Copy) korzysta z SSH do kopiowania plików między komputerami.
Polecenia ssh, scp i ssh-keygen są domyślnie dostępne w Linuksie, macOS i Windows (w PowerShell i w WSL).
Logowanie¶
ssh z1234567@student.tcs.uj.edu.pl
z1234567to login (konto wydziałowe),student.tcs.uj.edu.plto adres serwera.- Przy pierwszym połączeniu SSH pyta, czy ufamy serwerowi - odpowiadamy
yes. - Po podaniu hasła pracujemy w terminalu serwera. Kończymy poleceniem
exit(lub Ctrl+D).
Można też wykonać na serwerze jedno polecenie bez otwierania terminala:
ssh z1234567@student.tcs.uj.edu.pl ls -l
Klucze SSH¶
Zamiast wpisywać hasło przy każdym logowaniu, można użyć pary kluczy:
- klucz prywatny - zostaje na naszym komputerze; nie wolno go nikomu udostępniać,
- klucz publiczny (plik
.pub) - kopiujemy na serwer, na który chcemy się logować.
Generowanie kluczy¶
ssh-keygen -t ed25519
- Domyślne położenie pliku można zaakceptować (Enter).
- Można ustawić hasło do klucza (passphrase) - chroni klucz, jeśli ktoś wykradnie plik.
Klucze trafiają do katalogu .ssh w katalogu domowym (~/.ssh, w Windows C:\Users\<nazwa>\.ssh):
~/.ssh/id_ed25519- klucz prywatny,~/.ssh/id_ed25519.pub- klucz publiczny.
Kopiowanie klucza publicznego na serwer¶
Serwer akceptuje klucze wpisane do pliku ~/.ssh/authorized_keys w naszym katalogu domowym na serwerze (jeden klucz w linii).
Linux, macOS, WSL:
ssh-copy-id z1234567@student.tcs.uj.edu.pl
Windows (PowerShell):
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh z1234567@student.tcs.uj.edu.pl "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Od teraz ssh z1234567@student.tcs.uj.edu.pl nie pyta o hasło do konta (ewentualnie pyta o passphrase klucza).
Skrót do serwera¶
W pliku ~/.ssh/config można zapisać skrót:
Host student
HostName student.tcs.uj.edu.pl
User z1234567
Wtedy wystarczy ssh student (działa też z scp).
Kopiowanie plików (SCP)¶
Składnia: scp ŹRÓDŁO CEL, gdzie plik na serwerze zapisujemy jako login@serwer:ścieżka
(ścieżka względna liczy się od katalogu domowego na serwerze).
# z komputera na serwer (do katalogu domowego)
scp plik.pdf z1234567@student.tcs.uj.edu.pl:
# z komputera na serwer, do podkatalogu
scp plik.pdf z1234567@student.tcs.uj.edu.pl:projekty/
# z serwera na komputer (do bieżącego katalogu)
scp z1234567@student.tcs.uj.edu.pl:projekty/wynik.txt .
# cały katalog (-r)
scp -r projekt z1234567@student.tcs.uj.edu.pl: