맥북 macOS에 기본적으로 설치되어있는 sftp를 이용하여 접속하는 방법입니다.
개발환경 상 커맨드만 활용하여 sftp를 이용해야할 수도 있을 것 같아 알아보았습니다.
sftp 커맨드 동작여부를 sftp localhost
명령어를 통해 알아볼 수 있습니다.
sftp로 연결을 시도하려고 하다가 실패가 나는것으로 보이는데, 연결을 정상적으로 확인하려면 MacOS 환경설정에서 원격 서비스를 허용해주어야 한다고 합니다.
참고 링크 : https://nexpert.tistory.com/590
sftp 설치는 되어있는 것은 확인했으니 AWS 인스턴스 접속 시도를 해보겠습니다.
AWS EC2 인스턴스에 SFTP 접속 명령어는 아래와 같습니다.
sftp -i [PEM KEY] [AWS 퍼블릭 DNS]
보안설정을 하지 않은 개인서버의 경우 sftp [계정명]@[서버IP]
를 이용하지만,
AWS 인스턴스에 접근하는 경우 보안연결을 사용하므로, 아마존에서 제공하는 PEM 키파일도 같이 넣어주어야 합니다.
PEM 키파일을 같이 입력해주지 않으면 아래와 같이 접속 오류가 납니다.
sftp -i [PEM KEY] [AWS 퍼블릭 DNS]
로 시도하면 아래와 같이 접속되는 것을 확인할수 있습니다.
sftp 서버에 접속했다면, pwd
ls -al
cd
와 같은 명령어를 사용하여 원격서버의 파일상태와 현재 위치를 알수 있습니다.
현재 로컬PC의 위치와 파일상태를 알고 싶으면 l
을 앞에 붙여 명령을 수행합니다.
ex) lpwd
lcd ../
sftp> lpwd
Local working directory: /Users/dhk/DevTools
sftp> lcd ../
sftp> lpwd
Local working directory: /Users/dhk
sftp> lcd DevTools
sftp> lpwd
Local working directory: /Users/dhk/DevTools
sftp> lls -al
total 24
drwxr-xr-x 4 dhk staff 128 9 9 16:09 .
drwxr-x---+ 24 dhk staff 768 9 9 16:09 ..
-rw-r--r--@ 1 dhk staff 6148 9 9 15:46 .DS_Store
-r--------@ 1 dhk staff 1674 9 9 06:12 Mac-Elastic.pem
테스트를 위해 PEM 키파일을 AWS EC2 서버로 옮겨보겠습니다.
sftp> lpwd
Local working directory: /Users/dhk/DevTools

sftp> lls -al
total 24
drwxr-xr-x 4 dhk staff 128 9 9 16:09 .
drwxr-x---+ 24 dhk staff 768 9 9 16:09 ..
-rw-r--r--@ 1 dhk staff 6148 9 9 15:46 .DS_Store
-r--------@ 1 dhk staff 1674 9 9 06:12 Mac-Elastic.pem
sftp> pwd
Remote working directory: /home/ec2-user
sftp> put Mac-Elastic.pem
Uploading Mac-Elastic.pem to /home/ec2-user/Mac-Elastic.pem
Mac-Elastic.pem 100% 1674 123.3KB/s 00:00
sftp> ls -al
drwx------ 3 ec2-user ec2-user 118 Sep 9 07:32 .
drwxr-xr-x 3 root root 22 Sep 8 22:11 ..
-rw------- 1 ec2-user ec2-user 406 Sep 9 07:01 .bash_history
-rw-r--r-- 1 ec2-user ec2-user 18 Sep 30 2021 .bash_logout
-rw-r--r-- 1 ec2-user ec2-user 141 Sep 30 2021 .bash_profile
-rw-r--r-- 1 ec2-user ec2-user 376 Sep 30 2021 .bashrc
drwx------ 2 ec2-user ec2-user 48 Sep 9 02:08 .ssh
-r-------- 1 ec2-user ec2-user 1674 Sep 9 07:32 Mac-Elastic.pem
이외에도 원격서버 파일을 관리하기 위한 명령어가 존재합니다.
파일을 삭제 : rm
명령어 이용
권한 변경 : chmod
파일명을 변경하거나 파일위치 이동 : rename
더 많은 명령어가 존재할텐데 익숙해지면 같은 유형의 파일을 대량으로 옮기거나 할때 유용하게 사용할수 있을듯 합니다.
하지만 가시성과 편리성이 좋은 SFTP 클라이언트가 많이 있는데, 굳이 쌩으로 경로 확인해가며, 직접 입력해야하나 싶은 생각이 들긴 하네요..ㅎㅎ
참고링크 : Mac 터미널을 FTP 또는 SFTP 클라이언트로 사용하는 방법
무료로 많이 사용하는 filezilla sftp client를 사용하여 접속해보겠습니다.
AppStore에서 검색하게 되면 유료로 사용하는 Pro 버전만 다운로드 할수 있지만, 공식 홈페이지에 들어가면 무료로 사용할수 있는 MacOS버전을 제공합니다.
다운로드 링크 : https://filezilla-project.org/download.php?type=client
다운로드 후 프로그램을 열고 왼쪽 위 사이트 관리자 메뉴를 클릭합니다.
[계정명]@[퍼블릭 IPV4 IP]
or [계정명]@[퍼블릭 IPV4 DNS]
를 입력합니다.연결을 하면 EC2 인스턴스에 접속되는 것을 볼 수 있습니다.
다시 사이트 관리자를 열어 확인해보면 자동으로 호스트에 입력했던 사용자명(계정명)이 사용자정보로 옮겨졌음을 확인할 수 있네요. 사용자명(계정명)은 호스트에 붙여 입력해도 되고, 따로 적어도 되는 것 같습니다.
SFTP client를 사용하게 되면, 이전에 접속한 정보를 저장할 수 있고, 양쪽 경로에 접속해 드래그 만으로 파일을 옮길 수 있습니다! 편리하네요.