Computer/Linux

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

goatlab 2024. 5. 17. 14:48
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