이 글에서는 SCP를 이용하여 Oracle Cloud에 생성한 인스턴스에 파일을 전송하고, 인스턴스에서 파일을 내려받는 방법을 소개한다.
SCP는 SSH 기반의 파일 전송 프로토콜로, 두 위치 간에 파일과 디렉터리를 안전하게 복사할 수 있게끔 하는 명령줄 유틸리티이다. 이를 통해 파일을 로컬 시스템에서 원격 시스템으로 전송하거나, 반대로 원격 시스템에서 로컬 시스템으로 파일을 전송할 수 있으며, 로컬 시스템에서 둘 이상의 원격 시스템으로 파일을 전송할 수 있다.
SSH 기반의 파일 전송 프로토콜이니만큼, SCP는 데이터를 암호화하여 트래픽을 스누핑하는 사용자가 중요한 정보를 얻을 수 없도록 한다.
SCP를 이용한 업로드
업로드 명령의 기본 형태는 아래와 같다.
scp "로컬 컴퓨터에서 업로드 할 파일의 디렉터리 경로" remote_username@ip_address:"파일을 업로드 할 원격 컴퓨터의 디렉터리 경로"
그러나 Oracle Cloud에서 기본 설정대로 인스턴스를 만들면 SSH 키 기반 접속을 하게 되는데, 위 방법대로 접속을 시도하면 키가 없기 때문에 접속이 거부된다.
이 때문에 SSH 기반 접속을 위해서는 추가적인 옵션을 주고, SSH 키 파일의 디렉터리 경로를 명시해 주어야 한다.
아래는 해당 조건을 적용한 예문이다.
scp -i "SSH 키 경로" "로컬 컴퓨터에서 업로드 할 파일의 디렉터리 경로" remote_username@ip_address:"파일을 업로드 할 원격 컴퓨터의 디렉터리 경로"
scp -i "D:\Documents\Oracle_Cloud\Oracle_Cloud_Ubuntu.key" "D:\TMP\windows10.0-kb5035845-x64.msu" ubuntu@xx.xx.xx.xx:/home/ubuntu/TEMP

이 명령은 "D:\Documents\Oracle_Cloud\Oracle_Cloud_Ubuntu.key"를 이용하여 로그인 한 로컬 컴퓨터의 "D:\TMP\windows10.0-kb5035845-x64.msu"파일을 원격 컴퓨터의 "/home/ubuntu/TEMP" 디렉터리에 저장한다.


명령을 실행하면 위 이미지와 같이 파일이 업로드된다.

파일 업로드가 완료되면 인스턴스 상에서 이를 활용할 수 있다.
디렉터리를 통채로 업로드할 수도 있다.
물론 추가적인 옵션(-r)을 주어야 한다. 아래는 그 예문이다.
scp -r "로컬 컴퓨터에서 업로드 할 디렉터리 경로" username@ip_address:"업로드 할 원격 컴퓨터의 디렉터리 경로"
SSH 키 기반 연결을 한다면 아래의 예문을 사용해야 한다.
scp -i "SSH 키 경로" -r "로컬 컴퓨터에서 업로드 할 디렉터리 경로" username@ip_address:"업로드 할 원격 컴퓨터의 디렉터리 경로"



SCP를 이용한 다운로드
다운로드 명령의 기본 형태는 아래와 같다.
scp username@ip_address"원격 컴퓨터에서 내려받을 파일의 디렉터리 경로" "파일을 내려받을 로컬 컴퓨터의 디렉터리 경로"
SSH 키 기반 접속을 한다면 아래의 예문을 사용해야 한다.
scp -i "SSH 키 경로" username@ip_address"원격 컴퓨터에서 내려받을 파일의 디렉터리 경로" "파일을 내려받을 로컬 컴퓨터의 디렉터리 경로"


디렉터리를 통채로 내려받고 싶다면 아래의 예문을 이용한다.
scp -i "SSH 키 경로" -r username@ip_address"원격 컴퓨터에서 내려받을 디렉터리 경로" "내려받을 로컬 컴퓨터의 디렉터리 경로"

여담
Windows는 파일 및 디렉터리 경로의 대소문자를 구분하지 않지만, Linux는 파일 및 디렉터리의 대소문자를 구분한다.
즉, Example.exe와 EXAMPLE.EXE는 Windows에서는 같은 파일이지만, Linux에서는 다른 파일이다.
이 때문에 Linux 경로를 입력하는 경우, 대소문자를 주의하여 입력하여야 한다.
Oracle Cloud 시리즈
https://sprout13.tistory.com/59
ORACLE Cloud #1 - 가입하기
전에 필자는 MS Azure for Students에 가입하는 법에 대해 글을 쓴 바 있다. Azure for Students #1 - 가입하기 Microsoft Azure는 마이크로소프트에서 만든 클라우드 컴퓨팅 플랫폼으로, 인터넷을 통해 다양한 서
sprout13.tistory.com
https://sprout13.tistory.com/66
Oracle Cloud #2 - 인스턴스 만들기
저번 글에서 Oracle Cloud를 사용하기 위해 회원가입을 하는 방법을 설명한 바 있다. ORACLE Cloud #1 - 가입하기 전에 필자는 MS Azure for Students에 가입하는 법에 대해 글을 쓴 바 있다. Azure for Students #1 -
sprout13.tistory.com
https://sprout13.tistory.com/67
Oracle Cloud #3 - SSH를 이용하여 인스턴스에 접속하기
저번 글에서 클라우드 인스턴스를 생성하는 방법에 대해 알아본 바 있다. Oracle Cloud #2 - 인스턴스 만들기 저번 글에서 Oracle Cloud를 사용하기 위해 회원가입을 하는 방법을 설명한 바 있다. ORACLE Cl
sprout13.tistory.com
https://sprout13.tistory.com/71
Oracle Cloud #4 - APT UPDATE && APT UPGRADE
지난 글에서 APT에 대해 알아본 바 있다. Linux Mint에서 APT를 이용하여 패키지 업데이트하기 APT(Advenced Package Tool)란 Debian 계열 Linux에서 사용하는 고급 패키지 도구이다. 이 도구를 이용하여 사용자
sprout13.tistory.com
https://sprout13.tistory.com/72
Oracle Cloud #5 - 스왑 파일 만들기
이전 글에서, 인스턴스를 처음 만들면 운영체제에서 디스크 스왑을 사용하도록 설정되어 있지 않다고 한 바 있다. 이용자에 따라, 굳이 디스크 스왑을 사용하지 않아도 된다. 서버 운영체제이기
sprout13.tistory.com
참고 자료
SSH를 통해 원격 시스템에 파일을 업로드하는 방법 (linuxhandbook.com)
How to Upload Files to Remote System Over SSH
From legacy scp to modern rsync. From the unconventional sshfs to the GUI convenience of FileZilla. Learn different ways for copying files over SSH.
linuxhandbook.com
Using scp Command in Linux: 10 Practical Examples Explained (linuxhandbook.com)
Using scp Command in Linux: 10 Practical Examples Explained
Here are some practical and essential scp command example to show how to securely copy files between remote Linux systems.
linuxhandbook.com
SCP를 사용하여 VM 간에 파일 이동 - Azure Virtual Machines | Microsoft Learn
SCP를 사용하여 VM 간에 파일 이동 - Azure Virtual Machines
SCP 및 SSH 키 쌍을 사용하여 Azure에서 Linux VM 간에 안전하게 파일을 이동합니다.
learn.microsoft.com
'Clouds > Oracle' 카테고리의 다른 글
Oracle Cloud #8 - SSH 연결에 필요한 SSH 키 변경하기 (0) | 2024.07.01 |
---|---|
Oracle Cloud #7 - SFTP를 이용하여 Oracle 인스턴스와 파일 주고받기 (0) | 2024.06.01 |
Oracle Cloud #5 - 스왑 파일 만들기 (1) | 2024.01.15 |
Oracle Cloud #4 - APT UPDATE && APT UPGRADE (0) | 2024.01.01 |
Oracle Cloud #3 - SSH를 이용하여 인스턴스에 접속하기 (0) | 2023.12.01 |
댓글