【令和最新版】sshcontrolは使わないで!最近のGPGによるSSH認証のベストプラクティス

- Published on: 2025/2/9 - Archived snapshot date: Sat, 19 Apr 2025 20:42:21 +0900 - Category: Technology - Tags: GnuPG ## はじめに GnuPGユーザーがGPG鍵をSSH認証にも使おうとしたら、今…

Published:

- Published on: 2025/2/9

- Archived snapshot date: Sat, 19 Apr 2025 20:42:21 +0900

- Category: Technology

- Tags: GnuPG

## はじめに

GnuPGユーザーがGPG鍵をSSH認証にも使おうとしたら、今までは、`sshcontrol` を`gpg-agent`に渡すという、記事やブログの内容がほとんどだと思いますし、ChatGPTやLLMを使ったボットなどもこの内容を案内していますが、いつ からか、この`sshcontrol`を使う方法は非推奨になっていました。

```

const hello = "world!";

```

> This file is deprecated in favor of the "Use-for-ssh" attribute in the key files.

> (§ sshcontrol <https://www.gnupg.org/documentation/manuals/gnupg/Agent-Configuration.html> )

ここでは、それらの変更に対応した新しい?方法を示します。日本語でこれが解説されてあるのはGentoo LinuxのGnuPGのwikiぐらいでしょうか。

## 前提

すでにsshcontrolがあっても無くてもかまいません。

- GnuPG がインストールされている

- すでに秘密鍵や公開鍵をGPGが読みこんでいる

- GPG でSSH 接続したい先に同じ公開鍵がある

## 準備

SSH接続したいGPG鍵のKeygripを確認してください

### 方法1 gpg コマンドを使う

#### 鍵のIDや副鍵なども全て見る場合

```

gpg --list-secret-keys --keyid-format long --with-keygrip

```

鍵のIDは見なくても良い場合

```

gpg -k --with-keygrip

```

いずれにせよ、 --with-keygrip は必要ですね。

### 方法2 gpg-connect-agent を使う

```

gpg-connect-agent 'keyinfo --list' /bye

```

## セットアップ

### ssh認証にgpg-agentが関われるようにする

シェルの設定を行います。この手順自体はsshcontrol を使われていた方なら設定をしなくても良いはずです。

### gpg-agentにSSH接続に使って良い鍵を教える

```

gpg-connect-agent 'keyattr

```

#### 設定できたか確認する

```

gpg-connect-agent 'keyattr <登録したKEYGRIP> Use-for-ssh: ' /bye

```

と入力して、

```

D true

```

と出たらセットアップ終了です。

## 接続してみる

例えばGitHubにすでに今回登録したSSHの公開鍵を登録して、接続できるようにしている場合は

```

ssh -T git@github.com

```

で接続できます。

これで終了です!お疲れさまでした。

## sshcontrol から移行するには

sshcontrol には、鍵のKeygripが書かれているはずなので、それを一行ずつ上の手順を実行すれば良いはずです。

スクリプトを組んでもいいでしょう。

## トラブルシューティング

```

ssh -T git@github.com

```

に接続して、公開鍵の認証が出来ない場合は、シェルの設定の内容をもう一度確認したり、シェルからインタープリタ的に設定した後、シェルを閉じないでそのまま接続を行ってください。

また、以下のようなリセットコマンドもあります。

```

gpg-connect-agent reloadagent /bye

```

```

gpg-connect-agent updatestartuptty /bye

```

どちらも OK と帰ってきたらリセット完了です。

## おわりに

お読みいただきありがとうございました。近日中に、GPGにゼロから入門し、さらにSSH鍵など、様々な応用までカバーするための記事を公開する予定です。

## 参考

##

<https://security.stackexchange.com/questions/276688/now-that-sshcontrol-has-been-deprecated-how-to-use-gpg-key-for-ssh-authentica>