본문 바로가기
Computer/Linux

[Linux] 로컬 및 서버간 파일 전송

by goatlab 2024. 5. 17.
728x90
반응형
SMALL

scp

 

scp는 SecureCopy의 약자로, 원격 서버에 있는 파일과 폴더를 전송하거나 가져오기 위해 사용하는 명령어이다. ssh 원격 접속 프로토콜을 기반으로 하며, ssh와 동일한 22번 포트를 이용하기 때문에 password/identity file을 이용해 안전하게 송수신 할 수 있다.

 

로컬에서 AWS EC2 우분투 서버에 파일 전송

 

윈도우에서 리눅스 서버로 전송하는 경우, cmd 터미널에서 수행하며 파일 전송 방법은 다음과 같다.

 

scp -i C:\Users\{PC 계정}\Downloads\{키페어}.pem C:\Users\{PC 계정}\Downloads\{파일명} ubuntu@{퍼블릭 IPv4 주소}:~/

 

폴더를 전송하는 방법은 다음과 같다.

 

scp -ri C:\Users\{PC 계정}\Downloads\{키페어}.pem C:\Users\{PC 계정}\Downloads\{폴더명} ubuntu@{퍼블릭 IPv4 주소}:~/

 

wsl 터미널에서 전송이 완료되었는지 확인한다.

 

 

 

원격 서버에서 로컬 서버로 파일 전송

 

Windows 10 및 그 이후 버전에서는 OpenSSH가 기본적으로 포함되어 있어 SCP 사용 준비를 확인하면 된다. PowerShell을 열고 scp 명령을 입력하고, 만약 SCP가 설치되어 있지 않다면, 설정 → 앱 → 선택적 기능 → 기능 추가 → OpenSSH Client를 통해 설치할 수 있다.

 

 

그 다음, PowerShell에서 다음 명령어를 입력하여 SSH 키를 생성한다.

 

ssh-keygen -t rsa -b 2048

 

그 다음, 생성된 공개 키 (id_rsa.pub)를 원격 서버로 복사한다. 이를 위해 ssh-copy-id 명령을 사용한다.

 

Get-Content C:\Users\{PC 계정}\.ssh\id_rsa.pub | clip

 

원격 서버에 접속한 후, .ssh 디렉토리가 없으면 생성한다.

 

mkdir -p ~/.ssh

 

공개 키를 authorized_keys 파일에 추가한다.

 

echo "<클립보드의 공개 키 내용>" >> ~/.ssh/authorized_keys

 

마지막으로, 권한 설정한다.

 

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

 

터미널에서 scp를 이용하여 원격 서버에 있는 파일을 로컬 서버로 전송한다.

 

scp -i C:\Users\{PC 계정}\.ssh\id_rsa ubuntu@{퍼블릭 IPv4 주소}:~/{전송할 파일명} {저장할 절대 경로}

 

원격 서버에서 로컬 서버로 파일이 전송된 것을 확인할 수 있다.

 

728x90
반응형
LIST