SSH Authentication with FIDO2

Compatible Nitrokeys

3A/C/Mini

Passkey

HSM 2

Pro 2

FIDO2

Storage 2

Start

U2F

active

active

inactive

inactive

active

inactive

inactive

inactive

SSH(Secure Shell)は、サーバーやコード・リポジトリ(GitLabやGitHubなど)などのリモート・システムに安全にアクセスし、管理するために使用されるネットワーク・プロトコルです。認証には暗号鍵ペアを使用し、強力なセキュリティでパスワードなしのログインを可能にします。ニトロキーの場合、SSH秘密鍵はデバイス上で直接生成・保存されるため、ハードウェアから離れることはありません。ログインのたびにニトロキーに触れる必要があり、不正アクセスから保護するシンプルな物理的確認が追加されます。

Generating SSH Key

  1. Insert the Nitrokey into your computer.

  2. ターミナルを開き、SSH鍵を作成する。"your_comment" を識別するためのラベル(例えば "Nitrokey GitLab")に置き換えてください。デフォルトでは、鍵は非駐在鍵で、ローカルの鍵ハンドルは``~/.ssh/`` に保存され、秘密鍵はニトロキーに安全に保存されます。鍵をシステム間でポータブルにしたい場合は、-O resident オプションを使用してください。

    ssh-keygen -t ed25519-sk -C "your_comment"
    

    または常駐キーを作成する

    ssh-keygen -t ed25519-sk -O resident -C "your_comment"
    

    注釈

    レジデント・キーは、後で別のシステムでリストアップし、インポートすることができる:

    ssh-keygen -K
    
  3. 鍵の生成中に、パスフレーズ を設定するよう求められることもあります。このパスフレーズは、~/.ssh/ に保存されているローカル鍵ハンドルを暗号化します(ニトロキーの秘密鍵ではなく、常にデバイス内に安全に保存されます)。パスフレーズは FIDO2 デバイスの PIN とは異なる。PIN は物理的な鍵自体を保護し、パスフレーズはローカルの SSH 公開鍵ファイルを保護します。パスフレーズは非居住者の鍵のみを保護するために使用することを推奨します。

  4. ファイルのパスを聞かれたら、デフォルトのオプション(~/.ssh/id_ed25519_sk )を受け入れるか、id_ed25519_sk_gitlab のようなカスタム名を選択する。

  5. ニトロキーが点滅した場合は、ニトロキーをタッチして操作を確認してください。

最終的に以下のファイルが作成される。キーの生成時にカスタム名を指定した場合は、ファイル名が異なる場合があります。

~/.ssh/id_ed25519_sk` → 秘密鍵へのハンドル(ニトロキーに安全に保存されている)

~/.ssh/id_ed25519_sk.pub` → 公開鍵ファイル

img0

Adding Your Public Key

SSHキー・ペアが生成されたら、公開キーをアクセスしたいサービスやサーバーに追加する必要があります。

  1. Display your public key:

    cat ~/.ssh/id_ed25519_sk.pub
    

    出力例(このキーを使用しないでください)::

    sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG7wZW4zc2guY29tAAAAILeZl6r07HV4i1rK07OfLqD3J4IzX2q0lB6Ok0pdxoG5AAAABHNzaDo= your_comment
    
  2. 出力をコピーして、あなたのアカウントのSSH鍵設定に追加します。詳しい手順は GitLab <https://docs.gitlab.com/user/ssh/#add-an-ssh-key-to-your-gitlab-account> または GitHub <https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account> を参照してください。SSH リモートサーバーへのアクセスを有効にするには、SSH サーバーのユーザーアカウントのファイル``~/.ssh/authorized_keys`` に公開鍵を追加します。