> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloud.vessl.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# vesslctl ssh-key

> CLI에서 SSH 공개 키를 조회하고 추가하고 삭제하는 방법을 알아봐요.

`ssh-key` 명령(별칭: `ssh-keys`)으로 VESSL Cloud 계정에 등록된 SSH 공개 키를 관리할 수 있어요. 키는 슬러그(slug, 고유 식별자)로 참조해요. 이 슬러그를 `vesslctl workspace create --ssh-key`에 전달하면 새 Workspace에 사용할 키를 지정할 수 있어요.

## list

계정에 등록된 모든 SSH 키를 조회해요.

```bash theme={null}
vesslctl ssh-key list
```

출력에는 각 키의 슬러그, 이름, 지문(fingerprint), 생성 시각이 표시돼요. 다른 명령에 사용할 슬러그를 그대로 복사해서 쓰면 돼요.

| 컬럼            | 설명                               |
| ------------- | -------------------------------- |
| `SLUG`        | 키 고유 식별자. `--ssh-key` 플래그에 전달해요. |
| `NAME`        | 키를 추가할 때 지정한 이름                  |
| `FINGERPRINT` | 공개 키의 SHA-256 지문                 |
| `CREATED`     | 키 등록 시각(RFC 3339 형식)             |

## add

새 SSH 공개 키를 등록해요. 기존 공개 키 파일을 업로드하거나, 서버에서 키페어를 새로 생성할 수도 있어요.

```bash theme={null}
vesslctl ssh-key add --name <name> --public-key-file <path>
```

| 플래그                 | 필수  | 설명                                                                                              |
| ------------------- | --- | ----------------------------------------------------------------------------------------------- |
| `--name`            | 예   | 키를 식별할 이름(예: `macbook-personal`)                                                                |
| `--public-key-file` | 조건부 | 공개 키 파일 경로(보통 `~/.ssh/id_ed25519.pub` 또는 `~/.ssh/id_rsa.pub`). `--generate`를 쓰지 않으면 필수예요.       |
| `--generate`        | 조건부 | 서버에서 키페어를 새로 생성해요. 개인 키는 한 번만 출력되고 서버에 저장되지 않으니 반드시 저장해 두세요. `--public-key-file`과 함께 사용할 수 없어요. |

**예시: 기존 공개 키 업로드**

```bash theme={null}
vesslctl ssh-key add \
  --name macbook-personal \
  --public-key-file ~/.ssh/id_ed25519.pub
```

**예시: 서버에서 키페어 새로 생성**

```bash theme={null}
vesslctl ssh-key add --name temporary-runner --generate
```

명령이 성공하면 새로 등록된 키의 슬러그가 출력돼요. 이 슬러그를 `vesslctl workspace create --ssh-key <ssh-key-slug>`에 사용하면 돼요.

<Warning>
  `--generate` 옵션은 개인 키를 터미널에 단 한 번 출력하고 서버에 저장하지 않아요. 출력 결과를 즉시 파일(예: `~/.ssh/<key-name>`)로 저장하고 `chmod 600`으로 권한을 잠가 두세요. 세션을 닫으면 키를 다시 받을 수 없어요.
</Warning>

## delete

계정에 등록된 SSH 공개 키를 삭제해요. 삭제할 키는 슬러그로 지정해요.

```bash theme={null}
vesslctl ssh-key delete <ssh-key-slug>
```

| 플래그     | 약어   | 설명           |
| ------- | ---- | ------------ |
| `--yes` | `-y` | 확인 프롬프트 건너뛰기 |

**예시:**

```bash theme={null}
vesslctl ssh-key delete macbook-personal-abc123 --yes
```

<Note>
  키를 삭제해도 VESSL Cloud 계정에서만 제거돼요. 그 키를 사용 중인 Workspace는 종료(terminate)될 때까지 그 키로 SSH 접속을 계속 허용해요.
</Note>
