# 머신-사용자간 파일 전송

**머신-사용자간에 파일을 전송하려면?**

✔️ 현재 RUAI의 머신은 모두 Ubuntu OS를 기반으로 하고 있습니다. 자신의 로컬 컴퓨터에 있는 파일 혹은 대여한 머신 내에 존재하는 파일을 주고 받을 때는 **터미널과 파일 브라우저를 통해 전송해야 합니다.**&#x20;

✔️ 해당 가이드에서는 **`scp`** , **`croc`** ,  **`파일브라우저`** 에 대해 다룹니다.

***

## 1. SCP 명령을 이용한 파일 전송

### 1. Windows(내 컴퓨터) ↔︎ Ubuntu(원격 머신)

#### <mark style="background-color:blue;">Windows(내 컴퓨터) → Ubuntu(원격 머신)</mark>

✔️  Windows10을 기준으로 우선 OpenSSH Client가 활성화 되어 있어야 합니다.&#x20;

* **\[설정] → \[앱 및 기능] → \[선택적 기능]** 으로 이동해 OpenSSH가 설치 되어 있는지 확인합니다.&#x20;

✔️  이후 터미널(CMD), 파워 셸(PowerShell)을 실행하여 아래 **`scp`** 명령을 이용해 원격지로 파일 혹은 디렉토리를 전송합니다.&#x20;

* 발송 포맷은 다음과 같습니다.

```
scp -i [PEM 키 경로(PEM키 파일 드래그 드랍시 경로 표시)] [보낼 파일 경로(드래그 드랍시 경로 표시)] ubuntu@machine.runyour.ai:[원격지 머신 저장 경로]
```

&#x20;  \- 위 명령에서 \[]칸을 채우기 위해 대여한 머신에서 \[개발 환경 열기] 버튼을 클릭하여 SSH 접속 정보를 확인합니다.

<figure><img src="/files/E0xlgYLA0ESiBhiaXOHb" alt="" width="563"><figcaption></figcaption></figure>

* 파일을 전송하는 경우 예시

```
scp -i C:\Users\User\Download\ssh.pem C:\image\image.zip ruai@machine.runyour.ai:/home/ruai
```

* 폴더를 전송하는 경우 예시

```
scp -r -i C:\Users\User\Download\ssh.pem C:\image\image.zip ruai@machine.runyour.ai:/home/ruai
```

#### <mark style="background-color:blue;">Ubuntu(원격 머신) → Windows(내 컴퓨터)</mark>

✔️  원격지 머신에서 내 컴퓨터로 파일 및 폴더를 가져올 때는 명령을 반대로 작성하면 됩니다.

* 발송 포맷

```
scp -i [PEM 키 경로] ubuntu@machine.runyour.ai:[원격지 파일 및 폴더 경로] [자신의 컴퓨터에 저장할 위치]
```

* 파일을 가져오는 경우 예시

```
scp -i C:\Users\User\Download\ssh.pem ruai@machine.runyour.ai:/home/ruai/image.zip C:\image
```

* 폴더를 가져오는 경우 예시

```
scp -r -i C:\Users\User\Download\ssh.pem ruai@machine.runyour.ai:/home/ruai/image.zip C:\image
```

###

### 2. mac OS(내 컴퓨터) ↔︎ Ubuntu(원격 머신)

파일 전송 이전 개발 환경을 확인합니다.

<figure><img src="/files/JL7XkL757sn2R5ZFpufG" alt="" width="563"><figcaption></figcaption></figure>

#### <mark style="background-color:blue;">mac OS(내 컴퓨터) → Ubuntu(원격 머신)</mark>

* 발송 포맷

```
 scp -i [PEM 키 경로] [보낼 파일 경로(드래그 드랍시 경로 표시)] [사용자 명]@machine.runyour.ai:[원격지 머신 저장 경로]
```

* 파일을 전송하는 경우 예시

```
scp -i /home/user/Download/pem.ssh /Document/image/image.zip ruai@machine.runyour.ai:/home/ruai
```

* 폴더를 전송하는 경우 예시

```
scp -r -i /home/user/Download/pem.ssh /Document/image/image.zip ruai@machine.runyour.ai:/home/ruai
```

#### <mark style="background-color:blue;">Ubuntu(원격 머신) → mac OS(내 컴퓨터)</mark>

* 발송 포맷

```
scp -i [PEM 키 경로] ubuntu@machine.runyour.ai:[원격지 파일 및 폴더 경로] [자신의 컴퓨터에 저장할 위치]
```

* 파일을 가져오는 경우 예시

```
scp -i /home/keys/ssh.pem ubuntu@machine.runyour.ai:/home/ruai/image.zip /Document/image
```

* 폴더를 가져오는 경우 예시

```
scp -i /home/keys/ssh.pem ubuntu@machine.runyour.ai:/home/ruai/image.zip /Document/image
```

***

## 2. Croc CLI툴을 이용한 파일 전송

croc은 두 컴퓨터간 쉽게 데이터를 전송하는 CLI 기반 파일 전송 툴입니다.&#x20;

릴레이를 이용해 두 컴퓨터간 데이터 전송. 종단간 암호화가 적용됩 니다.

또한 크로스 플랫폼(윈도우, 리눅스, 맥)을 지원하며 다중 파일 전송도 가능합니다.

###

### 1. 다운로드

#### <mark style="background-color:green;">Unix</mark>

터미널을 실행하여 다음 명령을 입력하여 설치합니다.

```
nix-env -i croc
```

#### <mark style="background-color:green;">Ubuntu</mark>

터미널을 실행하여 다음 명령을 입력하여 설치합니다.

```
wget https://github.com/schollz/croc/releases/download/v10.0.10/croc_v10.0.13_Linux-64bit.tar.gz
tar -xvf croc_v10.0.13_Linux-64bit.tar.gz
cp ./croc /usr/local/bin
```

#### <mark style="background-color:green;">Mac (brew 필요)</mark>

터미널을 실행하여 다음 명령을 입력하여 설치합니다.

```
brew install croc
```

#### <mark style="background-color:green;">Window (scoop 혹은 choco 혹은 winget 필요)</mark>

이 가이드에서는 scoop을 이용해 설치하는 방법을 소개하겠습니다. 우선 윈도우 PowerShell 을 관리자 권한으로 실행하여 다음 두 명령을 차례대로 입력하여 **`scoop`** 을 설치합니다.

```
1 // Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

2 // Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
```

이어서 croc을 설치합니다.

```
1 // # scoop 을 이용해 설치하는 경우
2 // scoop install croc
3 // 
4 // # choco 을 이용해 설치하는 경우
5 // choco install croc
6 // 
7 // # winget을 이용해 설치하는 경우
8 // winget install schollz.croc
```

###

### 2. 사용 방법

터미널을 실행하여 대여 머신에 접속합니다.&#x20;

파일 전송, 수신 받는 쪽 모두 터미널을 실행하여 다음 역할에 따라 명령을 입력합니다.

#### <mark style="background-color:green;">파일 전송</mark>

```
croc send [전송할 파일(전송 파일 드래그 드롭으로 경로 설정 가능)]
```

위 명령을 수행하면 해당 터미널에서 **`Code is: [코드]`** 가 생성되는 것을 볼 수 있습니다.

이 **`코드`** 를 수신하는 쪽에서 입력하면 하면 됩니다.

#### <mark style="background-color:green;">파일 수신</mark>

```
croc [파일 전송시 생성된 코드 입력]
```

파일 전송시 생성된 코드를 입력하면 파일을 가져옵니다.

#### <mark style="background-color:green;">예시</mark>

**sender - 파일 전송** (내 컴퓨터 혹은 원격 머신의 터미널에서 수행)

```
1 // > croc send C:\image\image.zip
2 // Sending 'image.zip' (25182 B)
3 // # 코드가 생성됨.
4 // Code is: 0406-milk-parker-small
5 // On the other computer run
```

**receiver - 파일 가져오기** (내 컴퓨터 혹은 원격 머신의 터미널에서 수행)

```
1 // > taster@machine-runyourai-1:~$ croc 0406-milk-parker-small
2 // Accept 'image.zip' (25182 B)? (Y/n) // 엔터 입력
3 //
4 // ...
5 // image.zip 100% |████████████████████|
```

## 3. 파일브라우저를 이용한 파일 전송

머신과 사용자 간의 파일 전송은 **웹 기반 파일 브라우저**를 통해 더욱 직관적으로 수행할 수 있습니다.

### 1. 접속 방법

* 저장소를 생성한 뒤, **\[저장소 열기]** 버튼을 클릭하면 파일 브라우저 페이지로 이동할 수 있습니다.

<figure><img src="/files/yArUXiIGdbQciHGhVWzA" alt=""><figcaption></figcaption></figure>

### 2. 사용 방법

#### <mark style="background-color:red;">**파일 및 폴더 관리**</mark> <a href="#undefined-3" id="undefined-3"></a>

<figure><img src="/files/IdUXwas0WPypVnCc7yU0" alt=""><figcaption></figcaption></figure>

생성, 삭제, 이름 변경, 이동, 복사 등 기본적인 파일 및 폴더 작업을 지원합니다.

#### <mark style="background-color:red;">**업로드/다운로드**</mark> <a href="#undefined-4" id="undefined-4"></a>

<figure><img src="/files/4QUlXx5rw6qM8c9xXLxp" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/xwEZtqdfdrjqkzTFPW5D" alt=""><figcaption></figcaption></figure>

대용량 파일도 웹을 통해 손쉽게 업로드하고 다운로드할 수 있습니다.

#### <mark style="background-color:red;">**미리보기**</mark> <a href="#undefined-5" id="undefined-5"></a>

<figure><img src="/files/Kk7ZuZZHIhbAKX9vdOoM" alt=""><figcaption></figcaption></figure>

문서, 이미지, 비디오 등 다양한 형식의 파일을 직접 미리 볼 수 있습니다.

#### <mark style="background-color:red;">**잔여 용량 확인**</mark> <a href="#undefined-6" id="undefined-6"></a>

<figure><img src="/files/UbOON631ekSnmlu0GOw3" alt=""><figcaption></figcaption></figure>

저장소에서 사용중인 용량 및 나머지 용량을 확인할 수 있습니다.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://runyourai.gitbook.io/userguide/tutorial/transfer.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
