[SFTP] SFTP, SSH, FTP 와 SCP명령어로 파일복사
어제 회사에서 리눅스 장비에 있는 데이터들을 다운받아서 출장간 상사한테 보내달라는 요청이 왔었다.
remote desktop 처럼 ui가 있는 곳으로 들어가서 파일 드래그 앤 드랍을 하면 되는 줄 알았다.
그런데 해당 데이터들은 리눅스 장비에 있는 것이었고, Terminus를 통해서 받아오면 되는 것이였다.
선임한테 물어봤는데 SSH 프로토콜을 이용하면 된다는 것이였다.
마이갓… FTP랑 SSH는 정보통신기사 공부하면서 들어보긴 했는데 이론 상 아는거지 직접 체험할 줄은 몰랐다.
잡담은 여기서 그만하고 본론으로 들어가겠다.
일단 파일 전송 및 가져오는 방법은 크게 2가지가 있다.
1. SSH 프로토콜을 이용
일단 기본 개념부터 다지고 가야할 것 같다.
(1) FTP
FTP(File Transfer Protocol)는 인터넷에서 파일 전송을 위해 가장 일반적으로 사용되는 프로토콜 중 하나이다. FTP는 파일 전송을 위해 TCP/IP 프로토콜을 사용하며, 전송 중에 데이터를 암호화하지 않는다. 이는 데이터를 보호할 수 없으며, 중간자 공격과 같은 보안 위협에 취약할 수 있다. 또한 FTP는 사용자 이름과 비밀번호를 평문으로 전송하므로, 보안이 취약하다.
(2) SSH 프로토콜
SSH(Secure Shell)는 네트워크 상에서 안전하게 통신하기 위한 프로토콜이다. 기본적으로, SSH는 클라이언트와 서버 사이의 인증 및 암호화된 통신을 제공한다.
SSH 프로토콜은 다양한 용도로 사용된다. 가장 일반적인 용도는 원격으로 다른 컴퓨터에 로그인하는 것이다. SSH를 사용하여 원격 서버에 로그인하면 사용자 이름과 비밀번호를 입력하여 로그인할 수 있다. SSH는 이 정보를 안전하게 암호화하여 전송하기 때문에 보안이 유지된다.
SSH는 또한 파일 전송 및 포트 포워딩과 같은 다른 네트워크 작업을 수행할 수 있다. 예를 들어, SSH를 사용하여 로컬 컴퓨터에서 원격 서버로 파일을 전송하거나 원격 포트를 로컬 포트로 포워딩하여 로컬 머신에서 원격 서버에 연결할 수 있다.
SSH는 공개키 암호화 및 대칭키 암호화를 사용하여 보안을 유지한다. 이를 통해 SSH는 사용자 인증과 데이터 보호를 모두 수행할 수 있다. 공개키 암호화를 사용하여 클라이언트 및 서버 간의 상호 인증을 수행하고 대칭키 암호화를 사용하여 통신을 암호화한다. 이를 통해 SSH는 중간자 공격 및 데이터 유출을 방지할 수 있다.
따라서, SSH는 네트워크 상에서 안전하고 신뢰성 높은 통신을 가능하게 한다.
(3) FTP와 SSH 차이점
FTP는 보안에 취약하다. 반면에, SSH는 안전한 터널링 프로토콜로 파일 전송 외에도 여러 작업에 사용된다.
SSH는 TCP/IP 프로토콜을 기반으로하며, 전송 중에 데이터를 암호화한다. 이는 데이터를 안전하게 보호하며, 중간자 공격 및 다른 보안 위협으로부터 보호된다. 또한 SSH는 공개키 및 대칭키 암호화를 사용하여 사용자 인증 및 데이터 보호를 강화한다.
따라서, FTP는 데이터 전송에 있어서 보안성이 낮은 반면, 사용이 간단하고 보다 많은 시스템에서 지원한다. 반면에, SSH는 데이터 전송뿐 아니라 높은 보안성과 다양한 용도로 사용되지만, 구성 및 사용이 좀 더 복잡하다.
(4) SFTP
SFTP는 Secure File Transfer Protocol의 약어로, SSH(Secure Shell) 프로토콜을 사용하여 파일 전송을 안전하게 수행하는 프로토콜이다.
SFTP는 FTP(File Transfer Protocol)와는 다르다. FTP는 TCP/IP를 기반으로하며, 데이터 전송 중 암호화를 지원하지 않으므로, 보안성에 취약하다. 반면에, SFTP는 SSH를 기반으로하며, 데이터 전송 중에 암호화를 사용하여 보안성을 향상시킨다.
SFTP는 SSH 프로토콜에서 파일 전송을 위해 터널링 방식을 사용한다. SSH는 암호화된 터널을 만들어 데이터를 전송하므로, 데이터가 중간자 공격, 스니핑 및 기타 보안 위협에 대해 안전하다. SFTP는 공개키 및 대칭키 암호화를 사용하여 사용자 인증 및 데이터 보호를 제공한다. 이는 SFTP가 안전한 파일 전송을 위한 강력한 보안 기능을 제공한다는 것을 의미한다.
SFTP는 FTP와 마찬가지로 다른 호스트나 서버에 파일 전송을 할 수 있으며, 파일 및 디렉토리 작업도 수행할 수 있다. 하지만 SFTP는 FTP보다 보안성이 높으며, 데이터 전송 중에 암호화를 사용하므로, 중요한 파일 전송 작업에 사용하기 적합하다.
(5) SFTP와 SSH 차이점
SFTP (Secure File Transfer Protocol)와 SSH (Secure Shell)는 둘 다 네트워크 보안 프로토콜로, 데이터 전송을 보호하기 위해 암호화를 사용한다. 그러나 이들은 서로 다른 목적과 방식을 가지고 있다.
SSH는 원격 컴퓨터에 로그인하고 제어하는 데 사용되는 프로토콜이다. SSH를 사용하면 원격 컴퓨터에서 명령을 실행하거나 파일을 복사하거나 수정할 수 있다. SSH는 데이터 전송에 대한 암호화 및 인증 기능을 제공한다.
반면에 SFTP는 파일 전송 프로토콜로, SSH 프로토콜을 사용하여 파일을 전송한다. SFTP는 SSH의 일부로 구현되어 있으며, SSH와 마찬가지로 데이터 전송에 대한 암호화 및 인증 기능을 제공한다. SFTP는 파일 전송 작업에 특화되어 있으며, FTP와 비교하여 더욱 안전한 파일 전송이 가능하다.
따라서, SSH는 원격 컴퓨터에 로그인하고 제어하는 데 사용되며, SFTP는 파일 전송에 사용된다. 둘 다 보안이 강화된 기술로, 데이터 전송 과정에서 중요한 정보가 유출되는 것을 방지할 수 있다.
(6) 리눅스 SCP 명령어로 파일 받기
SCP (Secure Copy)는 SSH (Secure Shell) 프로토콜을 사용하여 로컬 시스템과 원격 시스템 간에 파일을 안전하게 복사할 수 있는 명령어다. SCP를 사용하면 파일 전송 과정에서 암호화를 사용하여 데이터 보안을 강화할 수 있다. 네트워크가 연결되어 있는 환경에서 SSH와 동일한 22번 포트(default)를 사용한다.
scp [옵션] [원본 파일 경로] [대상 파일 경로]
<리눅스에 SSH 서버가 동작하고 있어야 SCP를 사용할 수 있다.>
-
r
: 디렉토리를 복사할 때 사용p
: 파일 속성 (권한, 타임스탬프 등)을 보존하여 복사v
: 상세 정보를 출력
예를 들어, 로컬 시스템에서 현재 디렉토리에 있는 example.txt
파일을 원격 서버의 /home/user/
디렉토리에 복사하는 경우, 다음과 같이 명령을 실행할 수 있다.
scp example.txt user@remotehost:/home/user/
또는 원격 서버에서 /home/user/data/
디렉토리를 로컬 시스템의 /tmp/
디렉토리로 복사하는 경우, 다음과 같이 명령을 실행할 수 있다.
scp -r user@remotehost:/home/user/data/ /tmp/
SCP 명령어는 파일을 안전하게 복사하는 데 유용한 유틸리티이다. 그러나 SCP는 전체 디렉토리를 복사하는 경우 시간이 오래 걸리며, 대용량 파일 전송에 적합하지 않을 수 있다. 이 경우, rsync
나 sftp
와 같은 다른 유틸리티를 사용할 수도 있다.
(7) 회사 장비의 Termius 를 사용해서 직접 해보자.
아래 명령어는 Termius에서 하면 안되고 다운받을 로컬장비의 터미널에서 한 줄 한 줄 실행해야한다.
ssh root@192.***.***.***
yes
pwd****
scp -r root@192.***.***.***:/home/abcd/package ~/Downloads/packages
pwd****
root
부분에는 접근하는 사용자의 username을 적으면 되고192.***.***.***
이 부분에는 다운받을 자료가 있는 파일 경로~/Downloads/packages
이 부분에는 로컬장비에서 다운받을 경로를 적는다.
그러면 다운로드 폴더에 packages라는 폴더가 생기고 그 안에 파일들이 다운로드 될 것이다.
2. MacOS에서 Termius SSH client를 이용해서 파일 받기(SFTP)
- 먼저 SSH client mac os 사이트 링크로 들어간다.
- 맨 아래로 내려가면 download 버튼이 있다. 버튼을 클릭하고 다운받자.
- 이미 있어도 상관없다. 위 클라이언트로 교체될 것이다.
- 주의점 : 원래 있던 termius에서 자기 계정으로 로그인을 해야 위 클라이언트로 바꿔도 정보가 날라가지 않는다.
- 클라이언트를 받았으면 다시 실행을 하고 자신의 계정으로 로그인한다.
- 왼쪽 옆을 보면 SFTP가 있다. 이 버튼을 누르면 된다.
- 왼쪽은 파일이 있는 장비의 리눅스 서버의 파일들이다. 오른쪽은 로컬 장비의 파일들이다.
- 다운받을 파일을 왼쪽에서 찾아서 로컬장비로 드래그하면 끝이다!
Comments