[2] SCP – Secure Copy (CentOS)
20 maja 2020Jest możliwe kopiowanie plików za pomocą SSH.
Materiał ten dotyczy systemu CentOS, jednak jeśli posiadasz Windows 10 w wersji 1803 lub nowszej to możesz zrobić dokładnie to samo. Klient OpenSSH jest wbudowany w Windowsa i komendy [scp] i [sftp] sa obsługiwane czy to w PowerShell’u czy też w linii poleceń.
Oczywiście wszędzie można zastosować nazwy hostów zamiast adresów IP – jeśli tylko są one rozpoznawane (DNS i/lub hosts).
[1] Użycie SCP (Secure Copy).
# komenda: scp [opcje] źródło cel # skopiujmy [test.txt] z lokalnego komputera na zdalny [192.168.1.2] [user@lsr02vm ~]$ scp ./test.txt user@192.168.1.2:~/ The authenticity of host '192.168.1.2 (192.168.1.2)' can't be established. ECDSA key fingerprint is SHA256:Hl4rQQm8qarfgHkyIg523zKY1i5cexAVZYkdcswuXwk. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes # potwierdzamy odcisk przy pierwszym połączeniu Warning: Permanently added '192.168.1.2' (ECDSA) to the list of known hosts. user@192.168.1.2's password: # wpisujemy hasło test.txt 100% 52 105.9KB/s 00:00 # skpiujemy [/home/user/test.txt] na zdalnym komputerze [192.168.1.2] na lokalny [user@lsr02vm ~]$ scp user@192.168.1.3:/home/user/test.txt ./test2.txt user@192.168.1.3's password: # wpisujemy haslo test.txt 100% 52 0.7KB/s 00:00 [user@lsr02vm ~]$
[2] Teraz pokaże jak zrobić to samo za pomocą SFTP (SSH File Transfer Protocol). SFTP jest włączone domyślnie w CentOS, jeśli jednak by nie było to dodaj linię:
[Subsystem sftp /usr/libexec/openssh/sftp-server]
w pliku
[/etc/ssh/sshd_config]
# komenda: sftp [opcje] [user@host] [user@lsr01vm ~]$ sftp cent@192.168.1.3 cent@192.168.1.3's password: # wpisujemy hasło Connected to cent@192.168.1.3. # katalog roboczy na zdalnym hoście sftp> pwd Remote working directory: /home/cent # katalog roboczy na lokalnym hoście sftp> !pwd /home/user # pliki na zdalnym hoście sftp> ls -l -rw-rw-r-- 1 cent cent 0 May 24 12:43 cent.txt # pliki na lokalnym hoście sftp> !ls -l razem 0 -rw-rw-r--. 1 user user 0 05-24 12:43 user.txt # przesyłamy plik na zdalny komputer sftp> put user.txt user-copy.txt Uploading user.txt to /home/cent/user-copy.txt user.txt 100% 0 0.0KB/s 00:00 sftp> ls -l -rw-rw-r-- 1 cent cent 0 May 24 12:43 cent.txt -rw-rw-r-- 1 cent cent 0 May 24 12:45 user-copy.txt # pobieramy plik ze zdalnego komputera sftp> get cent.txt cent-copy.txt Fetching /home/cent/cent.txt to cent-copy.txt sftp> !ls -l razem 0 -rw-rw-r--. 1 user user 0 05-24 12:45 cent-copy.txt -rw-rw-r--. 1 user user 0 05-24 12:43 user.txt # tworzymy katalog na zdalnym komputerze sftp> mkdir testdir sftp> ls -l -rw-rw-r-- 1 cent cent 0 May 24 12:43 cent.txt drwxrwxr-x 2 cent cent 6 May 24 12:46 testdir -rw-rw-r-- 1 cent cent 0 May 24 12:45 user-copy.txt # kasujemy katalog na zdalnym komputerze sftp> rmdir testdir sftp> ls -l -rw-rw-r-- 1 cent cent 0 May 24 12:43 cent.txt -rw-rw-r-- 1 cent cent 0 May 24 12:45 user-copy.txt # wykonujemy komendę na lokalnym komputerze sftp> !hostname lsr01vm.zicher.lab # wychodzimy z sftp sftp> quit [user@lsr01vm ~]$