[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.101root@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 키 또는 비밀번호 인증 | 비밀번호 인증 (텍스트 기반) |
데이터 무결성 검증 | 가능 | 불가능 |
방화벽 설정 | 간단 | 복잡 (여러 포트 개방 필요) |
파일 전송 속도 | 보안 처리로 인해 다소 느림 | 비교적 빠름 (암호화 처리 없음) |
사용 예 | 보안이 중요한 파일 전송 | 내부 네트워크 등 보안이 필요 없는 파일 전송 |