# サーバから使う（login）

SSH 接続先や画面の無いサーバでも、`aikagi login` でログインできます。承認は最初の 1 回だけです。

## ログインする

サーバで、手元の PC と同じように実行します。

```sh
aikagi login
```

ブラウザを開けない環境では、自動でコード入力の方式に切り替わります。画面には次の 1 行だけが表示されます。

```sh
Open https://app.aikagi.dev/device and enter the code: XXXX-XXXX
```

ターミナルが対話モードでなくても、この 1 行は出力されます。systemd などから起動している場合は、そのログを確認してください。最初からこの方式を使う場合は `aikagi login --no-browser` を実行します。

## 手元のブラウザで承認する

自分の PC で [app.aikagi.dev/device](https://app.aikagi.dev/device) を開き、表示されたコードを入力します。「この端末にログインを許可しますか」という画面が開くので、内容を確認して許可してください。

許可すると、サーバ側のコマンドが自動で終了し、`Logged in as …` と表示されます。コードの有効期限は 10 分です。期限が切れた場合は、もう一度実行すると新しいコードが表示されます。

> **自分でいま実行した場合だけ承認してください。**実行していないのにコードの入力を求められた場合は、他の誰かがあなたとしてログインしようとしています。詳しくは[端末](https://aikagi.dev/guide/devices.md#phishing)のページを参照してください。

## 値を使う

ログイン後は、手元の PC と同じように使えます。サーバ上の `.aikagi.toml` で決まるプロジェクトと環境から、キーの値を受け取ります。

```sh
aikagi run -- npm start
aikagi get openai/api_key
```

サーバで動く AI ツールも、あなたのログインを使います。専用のアカウントは不要です。AI ツールに渡るのは、あなたが読めるキーの値だけです。

## 有効期限

承認したログインは 90 日間有効です。使っている間は期限が自動で延びるため、動かし続けているサーバで再ログインを求められることはほとんどありません。

長期間止まっていたサーバは、期限が来るとログアウトされます。その場合は、もう一度 `aikagi login` から同じ手順で進めてください。

## 失効する

サーバを使わなくなったら、Web の画面で「端末」（左メニュー、または右上のアカウントのメニュー）を開き、そのサーバの行の「失効」を押してください。押した時点から、そのサーバは値を取得できなくなります。

サーバ側でログアウトするだけなら、次のコマンドでもできます。

```sh
aikagi logout
```

承認と失効は、どちらも[監査ログ](https://aikagi.dev/guide/audit.md)に記録されます。

## CI の場合

GitHub Actions のように毎回新しい環境で動く CI では、ログインを使いません。job が OIDC token で値を取得します（[CI・デプロイで使う](https://aikagi.dev/guide/ci.md)）。

---

出典: https://aikagi.dev/guide/server/
