FileZilla SFTP를 사용하여 리눅스 클라우드에 윈도우 파이썬 프로젝트 및 MongoDB 등 데이터베이스 옮기기
FTP는 File Transfer Protocol로 말 그대로 파일을 전송하는 통신 규약입니다.
원격에 있는 서버에 파일을 주고 받을 때 사용하는 인터넷 통신 규약인데 내 컴퓨터에 있는 파일을 계정을 제공하는 서버로 파일을 서로 이동시키는 것을 말합니다. 여기에 보안이 추가된 SFTP가 있습니다.
기본 포트는 21
이지만 바꿔서 사용하는 경우도 있겠고요, 옛날엔 좀 사용했는데 지금은 보안이 안좋아서 실무에서는 사용하지 않습니다.
FTP는 서버에서 서비스를 열면 클라이언트에서 접속을 해서 명령어들을 이용해서 데이터(파일)를 가져가거나 업로드하거나 그런건데,
예를 들어 철수(서버)와 영희(클라이언트)가 있다면
SSH(Secure SHell) 은 원격지 호스트 컴퓨터에 접속하기 위해 사용되는 인터넷 프로토콜입니다.
기존의 유닉스 시스템 셸에 원격 접속하기 위해 사용하던 텔넷은 암호화가 이루어지지 않아, 계정 정보가 탈취될 위험이 높으므로 암호화를 추가해서 나온 것이 SSH입니다.
텔넷이란 ?
- 텔넷 (telecommunication network)
- 인터넷을 통하여 원격지의 호스트 컴퓨터에 접속할 때 지원되는 인터넷 표준 프로토콜
22
번 포트를 사용보안 접속을 통한 rsh, rcp, rlogin, rexec, telnet, ftp 등을 안전하게 제공.
IP spoofing (IP스푸핑, 아이피 위/변조 기법중 하나)을 방지하기 위한 기능을 제공.
서버에 접속할 때 비밀번호나 호스트 인증방식 대신 Key를 제출하는 방식입니다. 비밀번호보다 높은 수준의 보안 요건을 필요로 할 때 사용합니다.
SSH 키(Key)는 공개키(public key)와 비공개키(private key)로 이루어지는데 이 두개의 관계를 이해하는 것이 SSH Key를 이해하는데 핵심입니다. 키를 생성하면 공개키와 비공개키가 만들어집니다. 이 중에 비공개키는 서버에 위치해야 하고, 공개키는 클라이언트에 위치해야 합니다. SSH 접속을 시도하면 SSH Client가 로컬 머신의 비공개키와 원격 머신의 공개키를 비교해서 둘이 일치하는지를 확인합니다.
- 즉 SSH 키는 공개키 비공개키로 이루어집니다. (두개가 한 쌍, 키페어 라고 부름)
- 공개키는 접속하고자 하는 서버에 전달, 비공개키는 원격 접속을 시도하는 클라이언트가 가지고 있습니다.
- 클라이언트가 공개키로 서버에 SSH 접속을 시도하면 공개키와 비공개키로 인증을 거친 후 인증이 완료되면 접속이 가능합니다.
네트워크를 통한 파일 전송을 허용하는 SSH 프로토콜의 확장이라고 합니다.
기존의 FTP (File Transfer Protocol) 방식은 보안적인 취약점이 있으므로, 중요한 파일을 전송하기는 위험했습니다.
파일 전송 시 SSH 방식을 사용해서 안전하게 암호화된 구간에서 파일을 전송할 수 있도록 구현한 것이 SFTP 입니다.