Rocky Linux 9 SSH 파일 전송(Rocky)

Linux

SSH를 이용하면 암호화 통신을 통한 안전한 파일 전송을 할 수 있습니다. 이 글에서는 Rocky Linux 클라이언트 환경에서의 SSH 파일 전송 방법을 설명하겠습니다. 다른 리눅스 서버에서의 전송 방법과 큰 차이는 없습니다.

SCP 파일 복사

scp [옵션] 복사할 파일 붙여넣을 위치
로컬 호스트에 위치한 scp_test.txt를 node01.srv.world 위에 testuser01 사용자의 홈 디렉토리 바로 아래로 복사하는 예시입니다.

현재 환경에서 대상 환경으로 복사

전송하려는 파일이 있는 환경의 로컬 호스트 파일 “scp_test01.txt”를 리모트 호스트 “192.168.223.250”의 “testuser01” 사용자의 홈 디렉토리 아래로 복사하는 커맨드입니다. 아래 커맨드를 실행한 후 대상 환경의 홈 디렉토리의 파일 목록을 확인하면 복사된 파일을 확인할 수 있습니다.

[root@localhost-live /]# scp scp_test01.txt testuser01@192.168.223.250:/home/testuser01/scp_test01.txt
testuser01@192.168.223.250's password:
scp_test01.txt                                 100%   14    40.6KB/s   00:00
[testuser01@samplehost ~]$ ls
scp_test01.txt

대상 환경에서 현재 환경으로 복사

리모트 호스트 “192.168.223.250”의 파일 “/scp_test02.txt”를 로컬 호스트의 현재 디렉토리에 복사

[root@localhost-live /]# scp testuser01@192.168.223.250:/home/testuser01/scp_test02.txt ./scp_test02.txt
testuser01@192.168.223.250's password:
scp_test02.txt                                 100%   14     26.1KB/s   00:00
[root@localhost-live /]# ls
afs   sev         lib    media  proc  sbin          sys  tmp
bin   etc         lib64  mnt    root  scp_text02.txt  usr  boot
home  lost+found  opt    run    srv   var

SFTP 파일 전송

SFTP 서버 기능은 Rocky Linux에서는 기본적으로 활성화 되어있지만 만약 활성화 되어있지 않다면 “/etc/ssh/sshd_config” 파일에 “Subsystem sftp /usr/libexec/openssh/sftp-server”을 추가하여 “sshd”을 갱신합니다.

현재 상태 확인

SFTP 서버 접속

[root@localhost-live /]# sftp testuser01@192.168.223.250   //sftp 옵션 유저명@서버
testuser01@192.168.223.250's password:   
Connected to 192.168.223.250.
sftp>

리모트 호스트의 현재 디렉토리 표시

sftp> pwd
Remote working directory: /home/testuser01

로컬 호스트 현재 디렉토리 표시

sftp> !pwd
/

리모트 호스트의 현재 디렉토리의 파일 목록 표시

sftp> ls -l
-rw-r--r--    1 testuser01  testuser01       14 Aug  9 14:33 scp_test01.txt
-rw-r--r--    1 testuser01  testuser01       14 Aug  9 14:53 scp_test02.txt

로컬 호스트의 현재 디렉토리의 파일 목록 표시

sftp> !ls -l
total 80
...중간 생략...
-rw-r--r--. 1 root root 14 Aug  9 15:20 sftp_test01.txt
-rw-r--r--. 1 root root 14 Aug  9 15:36 sftp_test02.txt
...중간 생략...

파일 전송

디렉토리 이동

sftp> cd /home/testuser01
sftp> pwd
Remote working directory: /home/testuser01

로컬 호스트의 파일을 리모트 호스트에 리네임하여 업로드

sftp> put sftp_test01.txt sftp_test00.txt
Uploading sftp_test01.txt to /home/testuser01/sftp_test00.txt
scp_test01.txt                             100%   14    21.8KB/s   00:00
sftp> ls -l
-rw-r--r--    1 testuser01  testuser01       14 Aug  9 14:33 scp_test01.txt
-rw-r--r--    1 testuser01  testuser01       14 Aug  9 14:53 scp_test02.txt
-rw-r--r--    1 testuser01  testuser01       14 Aug  9 15:48 sftp_test00.txt

로컬 호스트의 복수 파일을 리모트 호스트에 일괄 업로드

sftp> put *.txt
Uploading sftp_test01.txt to /home/testuser01/sftp_test01.txt
scp_test01.txt                            100%    9    16.4KB/s 00:00
Uploading sftp_test02.txt to /home/testuser01/sftp_test02.txt
sftp_test02.txt                           100%   10    17.0KB/s 00:00
sftp> ls -l
-rw-r--r--    1 testuser01  testuser01       14 Aug  9 14:33 scp_test01.txt
-rw-r--r--    1 testuser01  testuser01       14 Aug  9 14:53 scp_test02.txt
-rw-r--r--    1 testuser01  testuser01       14 Aug  9 15:48 sftp_test00.txt
-rw-r--r--    1 testuser01  testuser01        9 Aug  9 15:53 sftp_test01.txt
-rw-r--r--    1 testuser01  testuser01       10 Aug  9 15:53 sftp_test02.txt

리모트 호스트의 파일을 로컬 호스트에 다운로드

sftp> get test.txt
Fetching /home/testuser01/test.txt to test.txt
test.txt                               100%   14    8.8KB/s   00:00

리모트 호스트의 복수 파일을 로컬 호스트에 일괄 다운로드

sftp> get *.txt
Fetching /home/testuser01/test.txt to test.txt
test.txt                               100%   14     8.8KB/s   00:00
Fetching /home/testuser01/test.txt to test01.txt
test01.txt                             100%   14     7.3KB/s   00:00
Fetching /home/testuser01/test.txt to test02.txt
test02.txt                             100%   14    27.9KB/s   00:00

리모트 호스트의 현재 디렉토리에 디렉토리 작성

sftp> mkdir tsdir
sftp> ls -l
...중간 생략...
drwxr-xr-x    2 testuser01 testuser01       6 Aug  9 16:01 tsdir

리모트 호스트의 현재 디렉토리 내의 디렉토리 삭제

sftp> rmdir testdir

리모트 호스트의 파일 삭제

sftp> rm sftp_test00.txt
Removing /home/testuser01/sftp_test00.txt

!command 에서 임의의 커맨드 실행

sftp> !cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
...
...
liveuser:x:1001:1001::/home/redhat:/bin/bash

종료

sftp> quit

댓글

제목과 URL을 복사했습니다