下記のリンクにある手順でgpgのサブキーを作成してssh-agentの代わりにgpg-agentを使おうと考えました。

<https://opensource.com/article/19/4/gpg-subkeys-ssh>

リンク先の手順では、addkeyを使ってRSAの署名と暗号化ができるサブキー作成していますが、下記の通り、署名か暗号化のどちらかしか選択肢がありません。

```

    gpg> addkey
    ご希望の鍵の種類を選択してください:
       (3) DSA (署名のみ)
       (4) RSA (署名のみ)
       (5) Elgamal (暗号化のみ)
       (6) RSA (暗号化のみ)
    あなたの選択は? 
    
```

暗号化のみのキーで処理をすすめると、下記のエラーでsshの接続はできませんでした。

```

    $ ssh -T git@github.com
    sign_and_send_pubkey: signing failed: agent refused operation
    git@github.com: Permission denied (publickey).
    $
    
```

gnupgのバージョンは、下記のとおりです。

```

    $ gpg --version
    gpg (GnuPG) 2.2.4
    libgcrypt 1.8.1
    Copyright (C) 2017 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.
    
    Home: /home/ksaito/.gnupg
    サポートしているアルゴリズム:
    公開鍵: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
    暗号方式: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256,
          TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256
    ハッシュ: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
    圧縮: 無圧縮, ZIP, ZLIB, BZIP2
    
```
CC BY-SA 4.0
2019-10-22T04:18:32.120
59865
2020-08-10T01:01:10.107
2019-10-22T07:30:23.737
3060
5285
question
ssh gpg
gpgで署名と暗号化ができるサブキーを作成できない
gpg はどのように起動していますか?

```

    gpg --export --edit-key <key-id>
    
```

のように `--expert` オプションを付けていますか?  
認証用の鍵を追加するにはエキスパートモードで gpg を起動する必要が有るはずです。
CC BY-SA 4.0
2019-11-06T11:15:58.633
60296
2019-11-06T11:15:58.633
12203
59865
answer