Linux 원격 파일 접속 & 파일 전송

2026. 6. 14. 15:24리눅스


Ⅰ. Telnet (Teletype Network)

Telnet

(Teletype

Network)
구분 설명
개념 클라이언트가 원격 호스트에 접속해 키보드로 입력한 문자들을 실시간으로 전송하고,

원격 시스템의 텍스트 기반 쉘 (명령어 인터페이스)을 조작할 수 있게 해주는 원격 접속 서비스
기능 / 역할 원격 시스템에 명령어 기반 원격 관리 제공
터미널 세션을 통해 원격에서 즉시 명령 입력 및 실행 가능
프로토콜  TCP  기반 통신
포트 기본 포트 23번 사용
데이터 전송 방식 전송되는 모든 문자 (입력, 출력)가 평문 (암호화되지 않은 텍스트)으로 네트워크 통해 오고감
보안 이슈 패스워드, 명령, 출력 등이 암호화되지 않아 패킷 스니핑 (중간에 가로챔)에 매우 취약
공개 네트워크 (Internet)에서는 사용 권장되지 않음
사용 예시

(명령)
형태 예시
telnet <호스트> ex) telnet 192.168.0.10
telnet <호스트> <포트> ex) telnet example.com 23
현대적 권장 대안 대안 설명
SSH (Secure Shell) 모든 통신이 암호화되어 보안성 높음
기본 포트 22번 사용
운영상 권고 내부 실습 / 레거시 장비 점검 이외에는 Telnet 비활성화 권장
가능하면 서비스 제거 또는 방화벽으로 포트 23번 차단 
SSH로 전환

 

 

 

cat /etc/services | grep ^telnet 명령을 통해 서비스 포트 번호와 프로토콜 정보만 담고 있는

 

/etc/services 파일에서 telnet으로 시작하는 서비스 항목 검색

 


Ⅰ -Ⅰ.Telnet 패키지 설치, Telnet 활성화

 

- telnet-server 패키지는 Telnet을 활성화하는 애플리케이션

 

- telnet 패키지는 Telnet 접속을 위한 클라이언트 애플리케이션

 

 

Server1에 yum –y install telnet-server telnet 명령을 통해 Telnet을 활성화하는 애플리케이션인

 

telnet-server 패키지와 Telnet 접속을 위한 클라이언트 애플리케이션인 telnet 패키지 설치

 

 

Client1에 yum –y install telnet-server telnet 명령을 통해 Telnet을 활성화하는 애플리케이션인

 

telnet-server 패키지와 Telnet 접속을 위한 클라이언트 애플리케이션인 telnet 패키지 설치

 

 

rpm –qa telnet-server telnet 명령을 통해 시스템에 설치된 telnet-server와 telnet 패키지 검색

 

systemctl enable —now telnet.socket 명령을 통해

 

Telnet의 소켓 단위 서비스를 즉시 활성화하고 부팅 시 자동 시작하도록 설정

 

systemctl status telnet.socket 명령을 통해 현재 telnet.socket 서비스 상태 확인

 

 

rpm –qa telnet-server telnet 명령을 통해 시스템에 설치된 telnet-server와 telnet 패키지 검색

 

systemctl enable —now telnet.socket 명령을 통해

 

Telnet의 소켓 단위 서비스를 즉시 활성화하고 부팅 시 자동 시작하도록 설정

 

systemctl status telnet.socket 명령을 통해 현재 telnet.socket 서비스 상태 확인

 

 

netstat 명령을 통해 네트워크 소켓 상태와 프로세스 상태 확인

 

-n 옵션을 통해 IP 주소와 포트를 숫자 형태로 표시

 

-t 옵션을 통해 TCP 프로토콜 상태만 표시

 

-l 옵션을 통해 현재 서버 대기 상태 (LISTEN 상태)인 소켓만 표시

 

-p 옵션을 통해 어떤 프로세스가 해당 포트를 사용 중인지 표시

 

 

yum –y install wireshark 명령을 통해 네트워크 패킷 분석 도구인 Wireshark 설치

 


Ⅰ - Ⅱ. Telnet 접속 테스트

 

Client1에서 telnet 192.168.2.203 명령을 통해 Server1 IP 서버의 텔넷 서비스 23번 포트로 접속 시도

 

로그인 후 cat /etc/passwd 명령을 통해 시스템의 사용자 계정 정보를 담고 있는 /etc/passwd 파일의 내용 확인

 

 

netstat –ntp 명령을 통해 IP 주소와 포트를 숫자로 표시하고, TCP 연결만 필터링하며,

 

연결에 사용된 프로세스 정보를 통해 Client1에서 Server1로 Telnet을 통해 잘 연결되었는지 확인

 

 

w 명령을 통해 접속한 사용자 확인

 

 

systemctl disable —now telnet.socket 명령을 통해 Telnet 소켓 서비스 비활성화

 

systemctl status telnet.socket 명령을 통해 서비스가 잘 비활성화 되었는지 확인


Ⅱ. SSH (Secure Shell)

SSH

(Secure Shell)
구분 설명
개념 클라이언트가 원격 호스트에 접속하여 키보드로 입력한 문자들을 실시간으로 전송하고,

원격 시스템에서 명령을 실행할 수 있게 해주는 보안 원격 접속 서비스
기능 / 역할 텍스트 기반의 원격 명령어 실행 및 관리 제공
원격 파일 전송 (SCP / SFTP), 포트 포워딩 (터널링), 원격 명령 실행 등 기능 제공
프로토콜 TCP 기반
포트 기본 포트 22번 사용 (포트 변경 가능)
데이터 전송 방식 통신 내용 (인증 정보, 명령, 출력)이 암호화(encrypted) 되어 전송 

-> 기밀성, 무결성, 인증 보장
사용 예시

(명령)
예시 설명
ssh user@host 원격 접속
ssh -p 2222 user@host 포트 지정
scp file.txt user@host:/path/ 파일 복사 (클라이언트 -> 서버)
sftp user@host 대화형 파일 전송
주요 구성 파일

(서버)
파일 설명
/etc/ssh/sshd_config SSH 서버 설정 (포트, 루트 로그인 허용

/ 로그안 비허용, 인증 방식 등)
서비스 제어

(systemd)
설명 예시
시작 sudo systemctl start sshd
자동 시작 sudo systemctl enable sshd
상태 확인 sudo systemctl status sshd
인증 방식 방식 설명
비밀번호 인증 (password)
공개키 인증 (public key)

(권장)
ssh-keygen으로 키 생성 후,

~/.ssh/authorized_keys에 공개키 등록
보안 권장사항 공개키 기반 인증 사용 권장 (비밀번호 차단)
루트 직접 로그인 비허용 (PermitRootLogin no)
포트 변경, Fail2ban 등으로 공격 표면 축소
최신 OpenSSH 버전 사용 및 정기적 패치
확인 명령어 명령어 설명
ss-tlnp 리스닝 포트 확인
장점 통신 내용이 암호화되어 보안성 우수
다양한 기능 (SCP / SFTP / 터널링)으로 관리, 전송, 포워딩 기능 제공
대부분의 리눅스  / 유닉스 / 윈도우 (서드파티) 환경에서 표준으로 용

 


Ⅱ - Ⅰ. SSH 패키지 설치, SSH 활성화 상태 확인

 

cat /etc/services | grep ^ssh 명령을 통해 서비스 포트 번호와 프로토콜 정보만 담고 있는

 

/etc/services 파일에서 ‘ssh’로 시작하는 서비스 항목 검색

 

systemctl status sshd 명령을 통해 SSH 데몬 (서버) 서비스인 sshd 현재 동작 상태 조회

 

 

netstat 명령을 통해 네트워크 소켓 상태와 프로세스 상태 확인

 

-n 옵션을 통해 IP 주소와 포트를 숫자 형태로 표시

 

-t 옵션을 통해 TCP 프로토콜 상태만 표시

 

-p 옵션을 통해 어떤 프로세스가 해당 포트를 사용 중인지 표시

 


Ⅱ - Ⅱ. SSH 접속 테스트

 

Client1에서 ssh user1@192.168.2.203 명령을 통해 Server1 IP 서버의 ssh 서버 22번 포트로 접속 시도

 

로그인 후 cat /etc/passwd 명령을 통해 시스템의 사용자 계정 정보를 담고 있는 /etc/passwd 파일의 내용 확인

 

 

netstat –ntp 명령을 통해 IP 주소와 포트를 숫자로 표시하고, TCP 연결만 필터링하며,

 

연결에 사용된 프로세스 정보를 통해 Client1에서 Server1로 SSH를 통해 잘 연결되었는지 확인

 

 

ls –l .ssh 명령을 통해 Client1의 홈 디렉터리 내 .ssh 디렉터리에 어떤 파일들이 있는지 상세 정보와 함께 확인

 

cat .ssh/known_hosts 명령을 통해

 

SSH 접속 시 서버의 공개키 정보를 저장하는 known_hosts 파일 내용 일부 확인

 

 

>.ssh/known_hosts 명령을 통해

 

.ssh/known_hosts 파일을 빈 파일로 만들어 기존에 저장된 서버 공개키 목록 모두 삭제

 

cat .ssh/known_hosts 명령을 통해 파일의 내용이 잘 삭제되었는지 확인


Ⅲ. SCP (Secure Copy Protocol)

SCP

(Secure Copy

Protocol)
구분 설명
개념 SSH 프로토콜 기반의 보안 파일 전송 서비스로 TCP 22번 포트를 사용하여 

데이터를 암호화해 송수신
기능 / 역할 로컬과 원격 서버 간에 파일 또는 디렉터리 복사 (전송)
데이터 전송 중 암호화로 보안성 확보
프로토콜 / 포트 TCP 22번 포트 (SSH와 동일)
보안 특징 SSH 기반 암호화 전소응로 데이터 도청 및 변조 방지
ID / 비밀번호 인증 또는 공개키 인증 지원
명령어 형식 scp [옵션] [원본 경로] [대상 경로]
사용 예시 설명 예시
로컬 -> 원격 서버 업로드 scp test.txt user@192.168.0.10:/home/user/
원격 서버 -> 로컬 다운로드 scp user@192.168.0.10:/home/user/test.txt ./
디렉터리 전체 업로드 scp -r /home/data user@192.168.0.10:/backup/
주요 옵션 옵션 설명
-r 디렉터리 단위 전송
-P [포트 번호] SSH 포트 지정
-p  원본 파일의 권한 / 시간 정보 유지
-C 전송 시 압축 수행 (속도 향상)
장점 SSH 암호화를 통한 높은 보안성
간단한 명령으로 빠른 파일 전송 가능
단점 전송 중 중단 시 재개 불가
대용량 및 대규모 파일 전송에는 비효율적 (sync) 권장
대체 도구 도구 설명
SFTP SSH 기반 대화형 파일 전송 도구
RSYNC 대용량 및 차등 동기화에 최적화된 고속 전송 도구

 

 

 

# test1, test2, test3, test4 디렉터리 생성

 

mkdir –p /test{1, 2, 3, 4} 명령을 통해 새로운 test1, test2, test3, test4 디렉터리 생성

 

(-p 옵션으로 인해 상위 디렉터리가 없을 경우, 함께 생성)

 

 

# test1 디렉터리 /etc/services 파일 내용 복사하여 scpfile1.txt, scpfile2.txt, scpfile3.txt, scpfile4.txt 파일 생성

 

cp /etc/services /test1/scpfile1~4.txt 명령을 통해 test1 디렉터리 내에 

 

/etc/services 파일 내용 복사하여 scpfile1.txt, scpfile2.txt, scpfile3.txt, scpfile4.txt 파일 생성

 

 

# test2 디렉터리 /etc/services 파일 내용 복사하여 scpfile5.txt 파일 생성

 

cp /etc/services /test2/scpfile5.txt 명령을 통해 test2 디렉터리 내에

 

/etc/services 파일 내용 복사하여 scpfile5.txt 파일 생성

 

 

# test3 디렉터리 /etc/services 파일 내용 복사하여 scpfile6.txt, scpfile7.txt, scpfile8.txt, scpfile9.txt 파일 생성

 

cp /etc/services /test3/scpfile6~9.txt 명령을 통해 test3 디렉터리 내에

 

/etc/services 파일 내용 복사하여  scpfile6.txt, scpfile7.txt, scpfile8.txt, scpfile9.txt 파일 생성

 

 

# test4 디렉터리 /etc/services 파일 내용 복사하여 scpfile10.txt 파일 생성

 

cp /etc/services /test4/scpfile10.txt 명령을 통해 test4 디렉터리 내에

 

/etc/services 파일 내용 복사하여 scpfile10.txt 파일 생성

 

ls –l /test* 명령을 통해 ‘test’라는 이름으로 시작하는 디렉터리 내에 파일을 자세하게 확인

 

 

# Server1의 test1 디렉터리 scpfile1.txt 파일을 Client1 tmp 디렉터리에 복사

 

scp /test1/scpfile1.txt root@192.168.2.201:/tmp 명령을 통해 Server1의 /test1 디렉터리 내에 있는

 

scpfile1.txt 파일을 IP 주소가 192.168.2.201인 Client1의 /tmp 디렉터리에 복사

 

 

# Server1의 test1 디렉터리 scpfile2.txt 파일을 Client1 tmp 디렉터리에 복사

 

scp –P 22 /test1/scpfile2.txt root@192.168.2.201:/tmp 명령을 통해 포트 22번을 명시하여 Server1의 /test1

 

디렉터리 내에 있는 scpfile2.txt 파일을 IP 주소가 192.168.2.201인 Client1의 /tmp 디렉터리에 복사

 

 

# Server1의 test1 디렉터리 scpfile3.txt, scpfile4.txt 파일을 Client1 tmp 디렉터리에 복사

 

scp /test1/scpfile3.txt /test1/scpfile4.txt root@192.168.2.201:/tmp 명령을 통해

 

Server1의 /test1  디렉터리 내에 있는 scpfile3.txt 파일과 scpfile4.txt 파일을

 

IP 주소가 192.168.2.201인 Client1의 /tmp 디렉터리에 복사

 

 

ls –l /tmp/scp* 명령을 통해 Client1의 /tmp 디렉터리 내 ‘scp’로 시작하는 파일이 잘 복사되었는지 확인

 

rm –rf /tmp/scp* 명령을 통해 /tmp 디렉터리 내 ‘scp’로 시작하는 모든 파일 삭제

 

ls –l /tmp/scp* 명령을 통해 파일이 잘 삭제되었는지 확인

 

 

# Server1 test1 디렉터리 내 모든 파일을 Client1 tmp 디렉터리로 복사

 

scp /test1/* root@192.168.2.201:/tmp 명령을 통해 Server1의 /test1 디렉터리 내

 

모든 파일들을 IP 주소가 192.168.2.201인 Client1의 /tmp 디렉터리로 복사

 

 

# Server1 test2 디렉터리 내 모든 파일을 Client1 tmp 디렉터리로 복사

 

scp –r /test2 root@192.168.2.201:/tmp 명령을 통해 Server1의

 

/test2 디렉터리 전체를 IP 주소가 192.168.2.201인 Client1의 /tmp 디렉터리로 복사

 

 

ls –l /tmp/scp* 명령을 통해 Client1의 /tmp 디렉터리 내에 ‘scp’로 시작하는 파일들이 잘 복사되었는지 확인

 

ls –l /tmp | grep test2 명령을 통해 Client1의 /tmp 디렉터리 내에 test2라는 디렉터리가 존재하는지 확인

 

ls –l /tmp/test2 명령을 통해 Client1의 /tmp/test2 디렉터리 내에 파일이 잘 복사되었는지 확인

 

 

ssh root@192.168.2.203 ls /test3 명령을 통해 Client1에서

 

IP 주소가 192.168.2.203인 Server1의 /test3 디렉터리 내에 있는 파일 목록 확인

 

 

# Server1 test3 디렉터리 내 scpfile6.txt 파일을 Client1 tmp 디렉터리로 복사

 

scp root@192.168.2.203:/test3/scpfile6.txt /tmp 명령을 통해 IP 주소가 192.168.2.203인

 

Server1의 /test3 디렉터리 내에 있는 scpfile6.txt 파일을 Client1의 /tmp 디렉터리로 복사

 

ls –l /tmp/scp* 명령을 통해 scpfile6.txt 파일이 잘 복사되었는지 확인

 

 

# Server1 test3 디렉터리 내 scpfile7.txt, scpfile8.txt, scpfile9.txt 파일을 Client1 tmp 디렉터리로 복사

 

scp root@192.168.2.203:/test/scpfile{7, 8, 9}.txt /tmp 명령을 통해 IP 주소가 192.168.2.203인

 

Server1의 /test3 디렉터리에 있는 scpfile7.txtm scpfile8.txt, scpfile9.txt 파일을 Client1의 /tmp 디렉터리로 복사

 

ls –l /tmp/scp* 명령을 통해 scpfile7.txt, scpfile8.txt, scpfile9.txt 파일이 잘 복사되었는지 확인

 

 

# Client1 tmp 디렉터리 내에 있는 scpfile6.txt, scpfile7.txt, scpfile8.txt, scpfile9.txt 파일 삭제

 

rm –rf /tmp/scpfile{6, 7, 8, 9}.txt 명령을 통해 /tmp 디렉터리에 있는

 

scpfile6.txt, scpfile7.txt, scpfile8.txt, scpfile9.txt 파일 삭제

 

ls –l /tmp/scp* 명령을 통해 파일이 잘 삭제되었는지 확인

 

 

# Server1 test3 디렉터리 내 모든 파일을 Client1 tmp 디렉터리로 복사

 

scp root@192.168.2.203:/test3/* /tmp 명령을 통해 Server1의

 

/test3 디렉터리 내에 있는 모든 파일을 Client1의 /tmp 디렉터리 내로 복사

 

ls –l /tmp/scp* 명령을 통해 scpfile6.txt, scpfile7.txt, scpfile8.txt, scpfile9.txt 파일이 잘 복사되었는지 확인

 

 

# Server1 test4 디렉터리 내 모든 파일을 Client1 tmp 디렉터리로 복사

 

scp –r root@192.1686.2.203:/test4 /tmp 명령을 통해 IP 주소가 192.168.2.203인

 

Server1의 /test4 디렉터리를 전체를 Client1의 /tmp 디렉터리로 복사

 

ls –l /tmp | grep test 명령을 통해 Client1의 /tmp 디렉터리 내에 test라는 디렉터리가 존재하는지 확인

 

ls –l /tmp/test4 명령을 통해 scpfile10.txt 파일이 잘 복사되었는지 확인

 

 

# Client1 tmp 디렉터리 내에 있는 scp로 시작하는 모든 파일 삭제

 

rm –rf /tmp/scp* 명령을 통해 /tmp 디렉터리 내에서 scp로 시작하는 모든 파일 삭제

 

ls /tmp/scp* 명령을 통해 파일들이 잘 삭제되었는지 확인

 

 

# /test로 시작하는 모든 디렉터리 삭제

 

rm –rf /test* 명령을 통해 /test로 시작하는 모든 것 삭제

 

ls –l 명령을 통해 잘 삭제되었는지 확인

 

 

ls –l /etc/ssh/ 명령을 통해 SSH 관련 설정과 키 파일들이 위치한 디렉터리인 /etc/ssh의 파일 목록과 권한 확인

 

cat –n /etc/ssh/sshd_config 명령을 통해 SSH 데몬 설정 파일인 sshd_config 파일의 내용 확인

 

 

vi /etc/ssh/sshd_config 명령과 PermitRootLogin no 명령을 통해 보안을 강화하기 위해 Root 계정을 통한

 

직접 접속 차단하도록 SSH 데몬 설정 파일인 sshd_config 파일의 내용을 vi 편집기 사용하여 수정

 

 

vi /etc/ssh/sshd_config.d/01-permitrootlogin.conf 명령과 PermitRootLogin no 명령을 통해 보안을 강화하기 위해

 

Root 계정을 통한 직접 접속 차단하도록 01-permitrootlogin.conf 파일의 내용을 vi 편집기 사용하여 수정


Ⅳ. SFTP (Secure File Transfer Protocol)

SFTP


구분 설명
개념 SSH (Secure Shell) 프로토콜을 기반으로 한 보안 파일 전송 프로토콜로, 파일을 

암호화하여 안전하게 업로드 및 다운로드할 수 있는 서비스
기능 / 역할 SSH 세션을 통해 보안 채널에서 파일 송수신 수행
대화형 (Interactive) 방식으로 원격 파일 탐색 및 조작 가능
디렉터리 이동, 파일 이름 변경, 삭제 등 다양한 명령 지원
프로토콜 / 포트 TCP 22번 포트 (SSH와 동일)
보안 특징 전송 데이터 및 인증 절차 모두 암호화되어 안전함
FRP와 달리 ID와 비밀번호가 평문으로 노출되지 않음
방화벽 통과 용이 (SSH 포트만 열면 됨)
명령어 형식 sftp [옵션] [사용자@호스트명]
사용 예시 예시 설명
sftp user@192.168.0.10 원격 서버 접속
put test.txt 파일 업로드
get data.csv 파일 다운로드
mput *.txt 여러 파일 업로드
mget *.log 여러 파일 다운로드
주요 명령어 명령어 설명
ls 파일 목록 보기
cd 디렉터리 이동
mkdir 디렉터리 생성
rm  파일 삭제
pwd / lpwd 원격 / 로컬 경로 확인
exit 종료
장점 보안성 높음 (SSH 암호화 기반)
파일 탐색 및 조작 기능 다양
별도의 포트 설정 없이 SSH 환경에서 바로 사용 가능
단점 CLI (명령어 기반) 환경에 익숙하지 않은 사용자는 불편
단순 명령 전송보다 대용량 전송 속도는 느림
대체 도구 도구구 설명
SCP 단순한 파일 복사에 최적화 (비대화형)
RSYNC 대용량 및 차등 백업 / 동기화에 효율

 

 

 

mkdir –p /test 명령을 통해 새로운 /test 디렉터리 생성

 

(-p 옵션으로 인해 상위 디렉터리 없을 경우, 함께 생성)

 

 

# /etc/services 파일 내용 복사하여 sftpfile1.txt, sftpfile2.txt, sftpfile3.txt, sftpfile4.txt 파일 생성

 

cp /etc/services /test/sftpfile1~4.txt 명령을 통해 /etc/services 파일의 내용을 복사한

 

sftpfile1.txt, sftpfile2.txt, sftpfile3.txt, sftpfile4.txt 파일 복사

 

ls –l /test 명령을 통해 /test 디렉터리로 sftpfile1.txt, sftpfile2.txt,

 

sftpfile3.txt, sftpfile4.txt 파일이 잘 복사되었는지 확인

 

 

# Server1 test 디렉터리 sftpfile1.txt 파일을 Client1 tmp 디렉터리로 복사

 

sftp root@192.168.2.203:/test/sftpfile1.txt /tmp 명령을 통해 IP 주소가 192.168.2.203인

 

Server1의 /test 디렉터리 내에 있는 sftpfile1.txt 파일을 Client1의 /tmp 디렉터리로 복사

 

ls –l /tmp/sftp* 명령을 통해 sftpfile1.txt 파일이 잘 복사되었는지 확인

 

 

# Server1 test 디렉터리 sftpfile2.txt, sftpfile3.txt, sftpfile4.txt 파일을 Client1 tmp 디렉터리로 복사

 

sftp root@192.168.2.203 << EOF \  get /test/sftpfile2.txt /tmp\  get /test/sftpfile3.txt /tmp\

 

get /test/sftpfile4.txt /tmp \ EOF 명령을 통해 IP 주소가 192.168.2.203인 Server1의

 

/test 디렉터리 내에 있는 sftpfile2.txt, sftpfile3.txt, sftpfile4.txt 파일을 Client1의 /tmp 디렉터리로 복사

 

ls –l /tmp/sftp* 명령을 통해 sftpfile2.txt, sftpfile3.txt, sftpfile4.txt 파일이 잘 복사되었는지 확인

 

 

# Client tmp 디렉터리에서 sftp로 시작하는 모든 파일 삭제

 

rm –rf /tmp/sftp* 명령을 통해 sftp로 시작하는 모든 파일 삭제

 

ls –l /tmp/sftp* 명령을 통해 파일이 잘 삭제되었는지 확인

 

 

  # /etc/services 파일 내용 복사하여 sftpupload1.txt, sftpupload2.txt, sftpupload3.txt, sftpupload4.txt 파일 생성

 

cp /etc/services sftpupload1~4.txt 명령을 통해 /etc/services 파일의 내용을

 

sftpupload1.txt, sftpupload2.txt, sftpupload3.txt,sftpupload4.txt 복사하여 생성

 

ls –l sftp* 명령을 통해 sftp로 시작하는 파일이 잘 생성되었는지 확인

 

 

sftp root@192.168.2.203 명령을 통해 IP 주소가 192.168.2.203인 Server1에 root 계정으로 접속

 

cd /test 명령을 통해 Server1의 홈 디렉터리에서 Server1의 /test 디렉터리로 이동

 

pwd 명령을 통해 /test 디렉터리로 잘 이동했는지 확인

 

ls 명령을 통해 현재 디렉터리인 /test 디렉터리 내 파일 목록 조회

 

 

# Server1 sftpfile1.txt 파일 Client1로 복사

 

get stfpfile1.txt 명령을 통해 Server1의 sftpfile1.txt 파일을 Client1로 복사

 

 

# Server1 sftpfile로 시작하는 모든 파일 Client1로 복사

 

mget sftpfile* 명령을 통해 Server1에서 sftpfile로 시작하는 여러 파일을 Client1로 한 번에 복사

 

ls –l sftp* 명령을 통해 파일들이 잘 생성되었는지 확인

 

 

# Client1 sftpupload1.txt 파일을 Server1 test 디렉터리로 전송

 

put sftpupload1.txt 명령을 통해 sftpupload1.txt 파일을 Server1의 /test 디렉터리로 전송

 

 

# Client1 sftpupload2.txt, sftpupload3.txt, sftpupload4.txt 파일을 Server1 test 디렉터리로 전송

 

mput sftp* 명령을 통해 Server1의 /test 디렉터리로 sftpupload2.txt, sftpupload3.txt, sftpupload4.txt 파일 전송

 

ls 명령을 통해 파일이 잘 전송되었는지 확인

 

quit 명령을 통해 Client1로 복귀

 

 

ls –l sftp* 명령을 통해 sftp로 시작하는 모든 파일의 상세한 정보 확인

 

 

# sftp로 시작하는 모든 파일 삭제

 

rm –rf sftp* 명령을 통해 sftp로 시작하는 모든 파일 삭제

 

ls –l sftp* 명령을 통해 파일이 잘 삭제되었는지 확인

 

 

# test 디렉터리 삭제

 

rm –rf /test 명령을 통해 /test 디렉터리 삭제

 

ls –l /test 명령을 통해 디렉터리가 잘 삭제되었는지 확인

 

 

netstat –ntp 명령을 통해 IP 주소와 포트를 숫자로 표시하고, TCP 연결만 필터링하며,

 

연결에 사용된 프로세스 정보 확인


Ⅴ. RSYNC (Remote Sync)

RSYNC

(Remote

Sync)
구분 설명
개념 로컬과 원격 시스템 간의 파일 및 디렉터리를 동기화 (Synchronization)하는 명령어로,

변경된 파일만 전송하여 효율적인 백업과 전송 수행
기능 / 역할 로컬과 원격, 원격과 원격 간 파일 및 디렉터리 동기화
기존 파일과의 차이점만 전송하여 네트워크 사용량 절감
백업 및 자동 동기화 작업에 주로 사용
프로토콜 / 포트 TCP 873번 포트 (기본)
SSH 사용 시 TCP 22번 포트
보안 특징 SSH 프로토콜을 함께 사용하면 전송 데이터가 암호화됨
단독 사용 시 속도는 빠르지만 보안이 낮음
명령어 형식 rsync [옵션] [원본 경로] [대상 경로]
사용 예시 설명 예시
로컬 -> 원격 디렉터리 업로드 rsync -avz /home/data/ user@192.168.0.10:/backup/
원격 -> 로컬 다운로드 rsync -avz user@192.168.0.10:/home/data ./backup/
SSH 포트 지정 rsync -avz -e "ssh -p 2222" ./ user@192.168.0.10:/data/
주요 옵션 옵션 설명
-a 아카이브 모드 (권한, 타임스탬프 유지)
-v 전송 상세 정보 출력
-z 압축 전송
--delete 원본에 없는 파일은 대상에서 삭제
--progress 전송 진행률 표시
장점 변경된 파일만 전송하여 속도 빠름
백업 및 대규모 파일 동기화에 효율적
SSH와 연동해 보안성 확보 가능
단점 초기에 전체 파일 스캔 작업으로 약간의 오버헤드 발생
단순 전송 목적에는 SCP보다 복잡
활용 사례 서버 백업 자동화 (cron + rsync)
웹 서버와 DB 서버 간 실시간 데이터 미러링
로컬 폴더와 원격 저장소의 정기 동기화
대체 도구 도구 설명
SCP 단순 파일 복사용
SFTP 대화형 파일 전송용
RCLONE / Syncthing 클라우드 파일 동기화용

 


Ⅵ. FTP (File Transfer Protocol)

FTP

(File Transfer

Protocol)
구분 설명
개념 네트워크 상에서 클라이언트와 서버 간의 파일을 전송하기 위한 표준 프로토콜
기능 / 역할 원격 서버에 접속하여 파일 업로드 (put) 및 다운로드 (get) 수행
파일 목록 조회, 디렉터리 이동, 이름 변경, 삭제 등의 기본 파일 관리 기능 제공
프로토콜 / 포트 TCP 21번 포트 (제어용)
TCP 20번 포트 (데이터 전송용, Active 모드 시)
전송 방식 모드 설명
Active 모드 서버가 클라이언트로 데이터 전송 연결 생성
Passive 모드 클라이언트가 서버로 연결 생성

(방화벽 환경에서 주로 사용)
데이터 보안 기본 FTP는 평문 (비암호화) 전송으로 ID, 비밀번호, 데이터 노출 위험 존재
보안 강화를 위해 FTPS(FTP over SSL / TLS) 또는 SFTP (SSH 기반) 사용 권장
명령어 형식 ftp [호스트 주소 또는 IP]
사용 예시 설명 예시
FTP 서버 접속 ftp 192.168.0.10
로그인 후 파일 업로드 put test.txt
파일 다운로드 get data.csv
여러 파일 업로드 mput *.txt
여러 파일 다운로드 mget *.log
주요 명령어 명령어 설명
ls 파일 목록 출력
cd / lcd 원격 / 로컬 디렉터리 이동
mkdir 디렉터리 생성
delete 파일 삭제
pwd / lpwd 원격 / 로컬 경로 확인
bye / quit 접속 종료
장점 전송 절차 단순
명령어 직관적
다양한 운영체제에서 기본 지원 (Windows, Linux, macOS)
단점 데이터 및 인증 정보가 평문 전송 -> 보안 취약
방화벽 환경에서 Active 모드 연결 문제 발생 가능
보안 대체 프로토콜 프로토콜 설명
FTPS 

(FTP over SSL / TLS)
FTP 데이터 암호화 지원
SFTP

(SSH File Transfer Protocol)
SSH 기반 완전 암호화 전송

'리눅스' 카테고리의 다른 글

Linux 네트워크  (0) 2026.06.14
Linux 서비스 운영 방식  (0) 2026.06.14
Linux 스케줄링 관리  (0) 2026.06.14
Linux 백업 관리  (0) 2026.06.14
Linux 패키지 관리  (0) 2026.06.14