> For the complete documentation index, see [llms.txt](https://runyourai.gitbook.io/userguide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://runyourai.gitbook.io/userguide/tutorial/transfer.md).

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

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

✔️ 현재 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>

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