[Linux] sftp 명령어 사용법


SFTP(SSH File Transfer Protocol)는 안전한 파일 전송을 위해 SSH(Secure Shell) 프로토콜을 사용하는 파일 전송 프로토콜입니다. SFTP를 사용하여 파일을 업로드, 다운로드, 삭제, 디렉터리 생성 등을 할 수 있습니다. sftp 명령어는 scp 명령어 등과 함께 openssh 패키지에 포함되어 있으며, 아래에 기본적인 SFTP 명령어와 사용 방법을 설명하겠습니다.


SFTP 연결

sftp username@hostname 형식으로 원격 호스트에 연결합니다. sftp> 프롬프트에서 아래 명령어들을 사용합니다.

[root@centos8 ~]# rpm -qf `which sftp`
openssh-clients-8.0p1-12.el8.x86_64
[root@centos8 ~]# sftp root@192.168.56.101
root@192.168.56.101's password: Connected to root@192.168.56.101. sftp>

파일 및 디렉터리 관련 명령어
명령어 용도
ls [옵션] 원격 호스트의 현재 디렉터리 목록을 표시
lls [옵션] 로컬 컴퓨터의 현재 디렉터리 목록을 표시
cd 디렉터리명 원격 호스트의 디렉터리를 변경
lcd 디렉터리명 로컬 컴퓨터의 디렉터리를 변경
pwd 원격 호스트의 현재 디렉터리를 표시
lpwd 로컬 컴퓨터의 현재 디렉터리를 표시
mkdir 디렉터리명 원격 호스트에 새 디렉터리를 생성
lmkdir 디렉터리명 로컬 컴퓨터에 새 디렉터리를 생성
rm 파일명 원격 호스트에서 파일을 삭제
rmdir 디렉터리명 원격 호스트에서 비어있는 디렉터리를 삭제
rename old파일명 new파일명 원격 호스트의 파일 또는 디렉터리 이름을 변경

파일 전송 명령어
명령어 용도
get 원격파일 [로컬파일] 원격 호스트에서 로컬 컴퓨터로 파일을 다운로드
mget 파일패턴 여러 파일을 한 번에 다운로드. 와일드카드(*) 사용 가능
put 로컬파일 [원격파일] 로컬 컴퓨터에서 원격 호스트로 파일을 업로드
mput 파일패턴 여러 파일을 한 번에 업로드. 와일드카드(*) 사용 가능

로컬 컴퓨터 명령어 실행

명령어 앞에 !를 붙이고 실행하면 로컬 컴퓨터의 명령어를 실행할 수 있습니다. 즉 !ls == lls와 동일합니다.


참고로 FTP와의 차이점을 간략하게 살펴보겠습니다
항목 SFTP (SSH File Transfer Protocol) FTP (File Transfer Protocol)
보안 높은 보안성 (SSH 기반 암호화) 낮은 보안성 (암호화 없음)
패키지 openssh vsftpd
데이터 전송 방식 단일 포트 사용(22) 여러 포트 사용(20-명령어, 21-파일 전송)
인증 방식 SSH 키 또는 비밀번호 인증 비밀번호 인증 (텍스트 기반)
데이터 무결성 검증 가능 불가능
방화벽 설정 간단 복잡 (여러 포트 개방 필요)
파일 전송 속도 보안 처리로 인해 다소 느림 비교적 빠름 (암호화 처리 없음)
사용 예 보안이 중요한 파일 전송 내부 네트워크 등 보안이 필요 없는 파일 전송

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다