> For the complete documentation index, see [llms.txt](https://docs.medcrypt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.medcrypt.com/ko/guardian/understand-device-provisioning/begin-device-provisioning/provision-devices-using-command-line.md).

# 명령줄을 사용하여 디바이스 프로비저닝

## 개요

다음을 사용하여 `mcguard_provision` 유틸리티를 사용하면 테스트용 또는 장치에서 Guardian Library를 사용할 수 없는 경우 프로비저닝 요청을 생성하고 업로드할 수 있습니다. 이 명령줄 도구는 연결 및 비연결 프로비저닝 워크플로와 프록시 프로비저닝 설정을 모두 지원합니다.

#### mcguard\_provision을 사용하는 경우:

* 프로비저닝 워크플로 테스트
* Guardian Library를 통합할 수 없는 장치
* 고급 문제 해결 시나리오
* 게이트웨이 장치가 다른 장치의 프로비저닝을 처리하는 프록시 프로비저닝 설정

### 추가 사전 요구 사항

프로비저닝을 시작하기 전에 [일반 프로비저닝 사전 요구 사항](/ko/guardian/understand-device-provisioning/begin-device-provisioning.md#general-prerequisites) 도 충족했는지 확인하세요. 명령줄을 사용하려면 다음 사전 요구 사항도 필요합니다:

* `mcguard_provision` 유틸리티가 설치되어 있어야 합니다
* 장치 정보를 바로 확인할 수 있어야 합니다(구성 요소 이름, 시스템 ID, 하드웨어 ID).
* **프록시 프로비저닝에만 해당:** 프록시 장치를 먼저 완전한 온라인 구성 요소로 프로비저닝해야 합니다.

## **기술 요구 사항**

### **플랫폼 호환성**

* **Linux/BSD 호스트:** 명령은 Linux/BSD 호스트에 맞게 작성되어 있습니다.
* **Windows 호스트:**
  * 실행 파일 이름에 `.exe` 를 추가합니다
  * 경로 구분 기호를 `/` 에서 `\` 표기로 전환합니다

### **파일 구성**

모든 명령줄 유틸리티는 작업 디렉터리 방식을 사용합니다. 예를 들어 연결된 초기 프로비저닝 중에 `mcguard_provision` 유틸리티는 작업 디렉터리에서 `.mcts`, `.mcpip` 및 `.mcpp` 파일을 찾습니다.

* 모든 원본 프로필 파일(.mcts, .mcpi, .mcpip, .mcp, .mcpp)은 지정된 프로필 경로와 동일한 폴더에 있어야 합니다.
* 모든 `mcguard_provision` CLI 출력은 동일한 작업 디렉터리에 저장됩니다.

### **네트워크 구성**

* Medcrypt에서 다른 IP 주소 재정의를 지정하지 않는 한 기본 Guardian Cloud 엔드포인트를 사용합니다.
* Medcrypt에서 시간 제한 설정을 변경하도록 지시하지 않는 한 기본 시간 제한 설정을 사용합니다.
* 이 두 설정은 모두 `provisioningOptions` 에서 제어하지만, Medcrypt의 지시에 따라서만 수정해야 합니다.

### **매개변수 예시**

이 문서의 명령 예시 전반에서 다음 예시 값을 사용합니다:

* 프로비저닝 구성 요소: `my_component`
* 프로비저닝 호스트: `35.164.222.194:19109`
* 프로비저닝 시스템: `my_system`
* 프로비저닝 하드웨어 ID: `my_hid`
* 프록시 구성 요소: `my_proxy`
* 프록시 시스템: `my_proxy_system`
* 프록시 하드웨어 ID: `my_proxy_hid`

이 값을 실제 장치 및 시스템 정보로 바꾸십시오.

## 연결된 기기 프로비저닝

Guardian Cloud와 직접 통신할 수 있는 네트워크 연결 장치에는 이 방법을 사용하십시오. 파일 형식 및 확장자에 대한 자세한 내용은 [Guardian 파일 형식](/ko/guardian/understand-device-provisioning/begin-device-provisioning.md#guardian-file-types-and-extensions) 을 참조하십시오.

### **최초 프로비저닝**

1. 이 명령을 실행하면 작업 디렉터리에 프로비저닝 요청(`.mcpr` 파일)과 개인 ID(`.mcpi` 파일)가 생성되고, 해당 파일이 Guardian Cloud에 자동으로 제출된 다음 인증된 프로필(`.mcp` 파일)이 장치에 자동으로 다운로드됩니다. 명령이 성공적으로 완료되면 장치 프로비저닝이 완료됩니다.

```bash
# 구문
./mcguard_provision --mode provision --component <component_name> --system <system_name> --hardware-id <hardware_id> --ip-address <guardian_host:port> <path_to_initial_provisioning_profile>

# 예시
./mcguard_provision --mode provision --component my_component --system my_system --hardware-id my_hid --ip-address 35.164.222.194:19109 /home/user/guardian/profiles/initial_profile
```

### **재프로비저닝**

1. 이 명령을 실행하면 기존 개인 ID를 사용해 새 프로비저닝 요청을 생성하고, 이를 Guardian Cloud에 자동으로 제출한 다음 업데이트된 인증 프로필을 가져옵니다. 명령이 성공적으로 완료되면 장치가 재프로비저닝됩니다.

```bash
# 구문
./mcguard_provision --mode reprovision --component <component_name> --system <system_name> --hardware-id <hardware_id> --ip-address <guardian_host:port> --reprovision <path_to_provisioned_profile>

# 예시
./mcguard_provision --mode reprovision --component my_component --system my_system --hardware-id my_hid --ip-address 35.164.222.194:19109 --reprovision /home/user/guardian/profiles/provisioned_profile
```

## 연결되지 않은 기기 프로비저닝

네트워크에 연결되지 않아 프로비저닝 요청을 Guardian Cloud로 수동 전송해야 하는 장치에는 이 방법을 사용하십시오.

### **최초 프로비저닝**

1. 이 명령을 실행하면 작업 디렉터리에 프로비저닝 요청(`.mcpr` 파일)과 개인 ID(`.mcpi` 파일)가 생성됩니다.

```bash
# 구문
./mcguard_provision --mode provision --component <component_name> --system <system_name> --hardware-id <hardware_id> --offline <path_to_initial_provisioning_profile>

# 예시
./mcguard_provision --mode provision --component my_component --system my_system --hardware-id my_hid --offline /home/user/guardian/profiles/initial_profile
```

2. **프로비저닝 요청 업로드:** .mcpr `파일을 Guardian Cloud UI에 수동으로 업로드하십시오.` 인증된 프로필 다운로드
3. **: 처리가 완료되면 Guardian Cloud UI에서**.mcp `파일을 다운로드하십시오.` 장치에 설치
4. **:**&#xD30C;일을 전송하십시오. `.mcp` 파일을 전송하여 `.mcpi`  파일이 있는 장치에서 프로비저닝을 완료합니다.

### **재프로비저닝**

1. 기존 개인 ID(`.mcpr`  파일)를 사용해 새 프로비저닝 요청(`.mcpi`  파일)을 생성하려면 다음 명령을 실행합니다.

```bash
# 구문
./mcguard_provision --mode reprovision --component <component_name> --system <system_name> --hardware-id <hardware_id> --offline <path_to_provisioned_profile>

# 예시
./mcguard_provision --mode reprovision --component my_component --system my_system --hardware-id my_hid --offline /home/user/guardian/profiles/provisioned_profile
```

2. **프로비저닝 요청 업로드:** .mcpr `파일을 Guardian Cloud UI에 수동으로 업로드하십시오.` 인증된 프로필 다운로드
3. **: 처리가 완료되면 Guardian Cloud UI에서**.mcp `파일을 다운로드하십시오.` 장치에 설치
4. **장치에 설치**:  `.mcp`  파일을 전송하여 `.mcpi`  파일이 있는 장치에서 재프로비저닝을 완료합니다.

## 프록시를 통한 기기 프로비저닝

{% hint style="success" %}
**프록시 설정 요구 사항:**

* 다른 기기의 프로비저닝 요청을 업로드하기 전에 **프록시 기기를 완전히 온라인 구성 요소로 프로비저닝해야 합니다** .
* 연결이 끊긴 기기의 `.mcpr` 파일을 먼저 프록시 기기로 전송해야 합니다
* 프록시 장치를 사용해 업로드할 때는 **프로비저닝 요청을 생성한 장치가 아니라 프록시 장치의 구성 요소와 하드웨어 ID를 사용해야 합니다**.
  {% endhint %}

1. 프록시 장치를 프로비저닝하려면 다음 명령을 실행합니다. 프록시는 자체 프로비저닝 요청(`.mcpr`)과 개인 ID(`.mcpi`)를 생성하고 Guardian Cloud에 자동으로 제출한 다음 인증된 프로필을 자동으로 가져옵니다. 완료되면 프록시 장치에서 다른 장치의 프로비저닝 요청을 처리할 수 있습니다.

```bash
# 구문
./mcguard_provision --mode provision --component <proxy_component> --system <proxy_system> --hardware-id <proxy_hardware_id> --ip-address <guardian_host:port> <path_to_proxy_provisioning_profile>

# 예시
./mcguard_provision --mode provision --component my_proxy --system my_proxy_system --hardware-id my_proxy_hid --ip-address 35.164.222.194:19109 /home/user/guardian/proxy/provisioning_profile
```

**2. 프록시를 통해 프로비저닝 요청 업로드:**

1. 연결이 끊긴 장치의 프로비저닝 요청을 프록시 장치를 통해 제출하려면 다음 명령을 실행합니다. 프록시는 `.mcpr`  파일을 Guardian Cloud에 자동으로 업로드하고 인증된 프로필(`.mcp`  파일)을 가져옵니다.

```bash
# 구문
./mcguard_provision --mode upload --component <proxy_component> --hardware-id <proxy_hardware_id> --ip-address <guardian_host:port> --provision-request <path_to_disconnected_device_pr> --output-profile <path_to_output_certified_profile> <path_to_provisioned_proxy_profile>

# 예시
./mcguard_provision --mode upload --component my_proxy --hardware-id my_proxy_hid --ip-address 35.164.222.194:19109 --provision-request /home/user/device_requests/device_pr.mcpr --output-profile /home/user/certificates/device_cp.mcp /home/user/guardian/proxy/provisioned_profile
```

2\. 인증된 프로필을 연결이 끊긴 장치로 전송합니다.

### 매개변수 참조

각 매개변수는 `--offline`.

&#x20;**매개변수를 제외하고 대상 객체의 실제 값 앞에 지정합니다.**\
**필수 매개변수:**

* **--mode:** 프로비저닝, 재프로비저닝 또는 프로비저닝 요청 업로드 시 사용합니다.
* **--component:** 구성 요소 이름/식별자
* **--system:** 시스템 이름 식별자입니다. 시스템 정의라고도 합니다.
* **--hardware-id:** 고유한 하드웨어 식별자(일반적으로 장치 일련번호)입니다.

**연결된 경우에만 해당:**

* **--ip-address:** Guardian Cloud 엔드포인트(host:port)

**연결이 끊긴 경우에만:**

* **--offline:** 오프라인/연결 끊김 모드 사용

**재프로비저닝에만 해당:**

* **--reprovision:** 기존에 프로비저닝된 프로필의 경로 지정(`.mcp` 파일)

**프록시에만 해당:**

* **--provision-request:** 프로비전 요청의 경로 지정(`.mcpr` 파일). 프록시 업로드용

#### 프록시 파일 이름 지정 권장 사항

프록시 프로비저닝 중 파일을 처리할 때 원하는 이름을 지정할 수 있습니다. 다음과 같이 지정하는 것을 권장합니다.

* 파일 확장자 유지(`.mcpr` 프로비전 요청용,  `.mcp` 인증된 프로필용) — 팀과 Medcrypt가 파일을 쉽게 식별할 수 있습니다.
* 장치 또는 구성 요소를 식별할 수 있는 설명적인 이름 사용
* 여러 프로비저닝 시도를 관리하는 경우 버전 번호나 날짜 포함

### 명령줄 문제 해결

#### **네트워크 연결 문제**

**오류:** 프로비저닝 엔드포인트에 연결할 수 없습니다

1. Guardian 로그 출력을 검토하거나 로그 수준을 높여 경고 또는 오류를 확인합니다.
2. 다음과 같은 도구를 사용하여 프로비저닝 엔드포인트에 대한 네트워크 연결을 테스트합니다. `telnet` 또는 `netcat`.

```bash
# 구문
telnet <guardian_host> <port>

# 예시
telnet 35.164.222.194 19109
```

3. 방화벽 구성을 확인하고 Guardian Cloud 엔드포인트에 액세스할 수 있는지 확인합니다.
4. IP 주소와 포트가 올바른지 확인합니다.
5. Guardian Cloud에 로그인하여 장치 프로비저닝 보고서를 검토합니다.
6. 시스템 정의가 자동 승인 또는 수동 승인으로 설정되어 있는지 확인합니다.

**예방**

* 안정적인 네트워크 연결과 적절한 방화벽 구성을 확보합니다.
* Guardian Cloud 엔드포인트에 적절한 방화벽 규칙을 구성합니다.
* 배포 전에 네트워크 환경에서 연결을 테스트합니다.

```cpp
Status Shutdown(
    const bool & in_force =false
)
```

#### **명령 실행 문제**

**파일을 찾을 수 없음 오류:**

* 필요한 모든 프로필 파일(.mcts, .mcpip, .mcpp)이 지정된 디렉터리에 있는지 확인합니다.
* 파일 권한을 확인하고 유틸리티가 프로필 파일을 읽을 수 있는지 확인합니다.
* 프로필 경로가 올바르고 액세스 가능한지 확인합니다.

**잘못된 매개변수 오류:**

* 구성 요소 이름, 시스템 이름 및 하드웨어 ID가 Guardian Cloud 구성과 일치하는지 확인합니다.
* 하드웨어 ID가 문자 수 제한(일반적으로 최대 36자)을 준수하는지 확인합니다.
* IP 주소 형식(host:port)이 올바른지 확인합니다.

### **프록시 프로비저닝 문제**

다음을 충족했는지 확인합니다. [프록시 설정 요구 사항](#proxy-device-provisioning).

**프록시 장치가 승인되지 않음:**

* 프록시 장치가 완전히 프로비저닝되어 작동 중인지 확인합니다. 프록시 장치를 사용하여 다른 장치를 프로비저닝하기 전에 이 작업을 완료해야 합니다.
* 대상 장치가 아니라 프록시 장치의 구성 요소 ID와 하드웨어 ID를 사용하고 있는지 확인합니다.
* 프록시 장치의 프로필에서 프록시 작업이 허용되는지 확인합니다.

**파일 전송 문제:**

* 연결이 끊긴 장치의 프로비저닝 요청(`.mcpr`  파일)에 프록시 장치가 액세스할 수 있는지 확인합니다.
* 수동 전송 과정에서 파일 무결성을 확인합니다.
* 파일 권한에 따라 프록시 장치가 프로비저닝 요청을 읽을 수 있는지 확인합니다.

## 디버깅 및 로깅

Guardian은 로그 파일을 생성하지 않습니다. 대신 로깅은 애플리케이션에서 제어합니다.

* Guardian은 로그를 다음으로 출력합니다: `stdout` 및 `stderr`이러한 로그는 실행 중인 애플리케이션의 터미널/CLI에 표시됩니다. 출력에서 특정 오류 코드나 연결 실패를 확인하세요.
* **사용자 지정 로깅:** 다음을 사용하여 `SetLoggingCallback` 로그 메시지를 콜백 함수로 리디렉션할 수 있습니다. 이렇게 하면 터미널 출력이 중단되고 사용자 지정 로그 처리가 가능해집니다.
* **로그 제어:** 애플리케이션에서 로그 수준과 상세도를 제어할 수 있습니다.
* **Guardian Cloud UI**: Guardian Cloud 인터페이스에서 추가 오류 세부 정보와 프로비저닝 상태를 확인하세요.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.medcrypt.com/ko/guardian/understand-device-provisioning/begin-device-provisioning/provision-devices-using-command-line.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
