# SSH鍵を管理する

### **SSH鍵を管理する** <a href="#df8asfsnuw7p" id="df8asfsnuw7p"></a>

1Passwordを使って、全SSH鍵を管理できます。公開鍵、指紋、秘密鍵を含む[SSH鍵アイテムを1Passwordで生Create](https://developer.1password.com/docs/ssh/manage-keys/#generate-an-ssh-key)できます。保存済みのSSH鍵がある場合は、[それを1Passwordにインポート](https://developer.1password.com/docs/ssh/manage-keys/#import-an-ssh-key)できます。また、いつでも 1Passwordから[SSH鍵をエクスポート](https://developer.1password.com/docs/ssh/manage-keys/#export-an-ssh-key)できます。

### **必要条件** <a href="#id-5kyfpg1poij2" id="id-5kyfpg1poij2"></a>

1Passwordを使ってSSH鍵を管理する前に、次のことを行う必要があります。

* 1Passwordに[サインアップ](https://start.1password.com/sign-up/plan)してください。
* [Mac](https://1password.com/downloads/mac)、[Windows](https://1password.com/downloads/windows)、または[Linux](https://1password.com/downloads/linux)用の1Passwordをインストールし、[アプリにアカウントを追加](https://support.1password.com/add-account/)してください。
* （オプション）[1Password CLI](https://developer.1password.com/docs/cli/get-started#step-1-install-1password-cli) (2.20.0以降) をインストールしてください。1Password CLIを使ってSSH鍵をCreateするために必要です。

### **SSH鍵を生Createする** <a href="#t2mh2pyv5bwl" id="t2mh2pyv5bwl"></a>

1Passwordデスクトップアプリまたは1Password CLIを使ってSSH鍵を生Createし、必要な場所で使えるようにします。

* デスクトップアプリ\
  1Passwordアプリを開いてロックを解除し、サイドバーで[Personal](https://support.1password.com/1password-glossary/#personal-vault)、[Private](https://support.1password.com/1password-glossary/#private-vault)、または[Employeeの保管庫に移動します<br>](https://support.1password.com/1password-glossary/#employee-vault)SSHエージェントを共有データ保管庫またはカスタムデータ保管庫に設定している場合は、代わりにそれらのデータ保管庫の1つにSSH鍵を生Createできます。\
  ①\[New Item]を選択し、\[SSH Key]を選択します。\
  ②\[Add Private Key] > \[Generate a New Key]を選択します。\
  ③Key Typeを選択し、\[Generate]を選択します。\
  ④鍵の名前を編集し、その他の変更を加えることができます。 完了したら\[Save]を選択します。\
  ![Ed25519 キー タイプを生成するオプションが選択された SSH キー項目の 1Password 保存ダイアログ。](https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2F7jqBjsLDhLo7aUb3CdEg%2F0.png?alt=media)![](https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2Fjz7k46rzgO3jCfM2DncE%2F1.png?alt=media)
* 1Password CLI\
  ①ターミナルを開き、1Passwordアカウントに[サインインします。](https://developer.1password.com/docs/cli/get-started/#step-3-enter-any-command-to-sign-in)\
  ②SSH鍵を生Createするには、次のコマンドを実行します。\
  op item create --category ssh --title "My SSH Key"\
  ③1Password CLIはデフォルトで[Ed25519](https://developer.1password.com/docs/ssh/manage-keys/#ed25519)鍵を生Createします。その代わりに[RSA鍵をCreateする方法はこちらで](https://developer.1password.com/docs/cli/ssh-keys/#generate-an-ssh-key)学んでください。\
  ④コマンドを実行すると、1Password CLIはSSH鍵を生Createし、組み込みの[Personal](https://support.1password.com/1password-glossary/#personal-vault)、[Private](https://support.1password.com/1password-glossary/#private-vault)、または[Employeeの保管庫](https://support.1password.com/1password-glossary/#employee-vault)に新しいアイテムとしてSaveし、秘密鍵が編集された状態で鍵をstdout に出力します。\
  デフォルトでは、SSH鍵は Personal 、 Private 、または Employee の保管庫にSaveされます。

  コマンドラインでSSH鍵を管理する方法の詳細については、[1Password CLIの完全なドキュメント](https://developer.1password.com/docs/cli/ssh-keys/)を参照してください。

#### **サポートするSSH鍵の種類** <a href="#drlofkrdjeqz" id="drlofkrdjeqz"></a>

1Passwordは、PKCS#1、PKCS#8、OpenSSH形式の[Ed25519](https://developer.1password.com/docs/ssh/manage-keys/#ed25519)および[RSA鍵タイプ](https://developer.1password.com/docs/ssh/manage-keys/#rsa)をサポートしています。

**Ed**[**25519**](https://developer.1password.com/docs/ssh/manage-keys/#ed25519)

Ed25519は現在利用可能な最も高速かつ最も安全な鍵タイプであり、ほとんどの Gitとクラウドプラットフォームで推奨されているオプションです。Ed25519は、1Passwordで新しいSSH鍵を生Createするときにデフォルトで提案され、鍵は自動的に256ビットに設定されます。

[Ed25519鍵タイプは、2014年にOpenSSH 6.5](https://www.openssh.com/releasenotes.html)で初めて導入されました。OpenSSH 6.5 以降を使用していない古いサーバーに接続する必要がある場合、Ed25519 鍵は機能しません。

[**RSA**](https://developer.1password.com/docs/ssh/manage-keys/#rsa)

RSA は、最も古い鍵タイプの1つであり、古いサーバーを含むほとんどのサーバーと互換性があります。Ed25519と比較すると、RSAは特に復号化がかなり遅く、2048ビット以上の場合にのみ安全であると見なされています。1Passwordは、2048ビット、3072ビット、4096ビットの RSA鍵をサポートしています。

### **SSH鍵をインポートする** <a href="#xli5s89q4juc" id="xli5s89q4juc"></a>

1PasswordにSaveしたいSSH鍵がある場合は、それをインポートできます。

①1Password デスクトップ アプリを開いてロックを解除し、サイドバーで[Personal](https://support.1password.com/1password-glossary/#personal-vault)、[Private](https://support.1password.com/1password-glossary/#private-vault)、または[Employee](https://support.1password.com/1password-glossary/#employee-vault)の保管庫に移動します。共有保管庫またはカスタム保管庫に[SSHエージェントを設定して\
いる場合](https://developer.1password.com/docs/ssh/agent#configuration)は、代わりにそれらの保管庫のいずれかでSSH鍵を生Createできます。![「キー ファイルのインポート」が選択された新しい SSH キー項目。](https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2FmJyNhanWMsfPcxZVJYD5%2F2.png?alt=media)

②\[New Item]を選択し、\[SSH Key]を選択します。

③\[Add Private Key] > \[Import a Key File]を選択し、必要なSSH鍵の場所に移動して\[Import]を選択します。また、SSH鍵ファイルを新しいSSHアイテムに直接ドラッグ＆ドロップしたり、クリップボードから貼り付けたりすることもできます。

④SSH鍵がパスフレーズで暗号化されている場合は、パスフレーズを入力して\[Decrypt]を選択します。パスフレーズは1回だけ入力する必要があります。SSH鍵を 1Passwordにインポートすると、 [1Passwordセキュリティーモデル](https://support.1password.com/1password-security/#encryption)に従って暗号化されます。

⑤完了したら、\[Save]を選択します。

💡パスフレーズは1PasswordにSaveされていたら?

SSH鍵のパスフレーズが既に1PasswordにSaveされている場合は、コンテキストを切り替えることなく、[Quick Access](https://support.1password.com/quick-access/)を使ってパスフレーズを見つけてコピーできます。

![クイック アクセスを使用して、SSH キーのパスフレーズを見つけてコピーします。](https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2FJdBi6H2BkhL7Iu0IkUFV%2F3.png?alt=media)

#### **鍵インポートエラー** <a href="#id-6tembw0dtin" id="id-6tembw0dtin"></a>

1PasswordにSSH鍵をインポートするときに以下のいずれかのエラー メッセージが表示される場合は、鍵の種類、ファイル形式、または暗号化に問題がないか確認してください。<br>

* your SSH key isn't supportedというメッセージが表示される場合\
  SSH鍵がサポートされていないというメッセージが表示された場合は、[Ed25519](https://developer.1password.com/docs/ssh/manage-keys/#supported-ssh-key-types)鍵または[RSA](https://developer.1password.com/docs/ssh/manage-keys/#supported-ssh-key-types)鍵をインポートしていることを確認してください。DSA鍵やECDSA鍵などの他の鍵タイプはサポートされていません。RSA鍵を使用している場合は、鍵長が2048ビット、3072ビット、または4096ビットであることを確認してください。他の鍵サイズはサポートされていません。

鍵の種類とビット長を確認するには、次のコマンドを実行します。

ssh-keygen -l -f \<path/to/your/key>

RSA鍵は、[NIST標準](https://csrc.nist.rip/library/NIST%20SP%20800-078-2%20Cryptographic%20Algorithms%20and%20Key%20Sizes%20for%20Personal%20Identification%20Verification%20\(PIV\),%202010-02.pdf)を満たすために、最小公開指数65,537も必要です。公開指数が 65,537未満のRSA鍵はサポートされていません。鍵の公開指数のサイズを確認するには、次のコマンドを実行します。

openssl rsa -text -in \<path/to/your/key> | grep publicExponent

* your SSH key file couldn't be readというメッセージが表示された場合\
  SSH鍵 ファイルを読み取れないというメッセージが表示された場合は、鍵ファイルがサポートされている形式であることを確認してください。1PasswordはPKCS#1、PKCS#8、OpenSSH形式をサポートしています。PuTTYgenの.ppkなどの異なるファイル形式を使う鍵はサポートされていません。
* your SSH key couldn't be decryptedというメッセージが表示された場合
* SSH鍵を復号化できなかったというメッセージが表示された場合は、RC4などのサポートされていない古い暗号で暗号化されている可能性があります。鍵ファイルを再度暗号化して、より新しいアルゴリズムを使うようにしてから、再度インポートしてみてください。これを行うには、次のコマンドを実行します。

ssh-keygen -p -f path/to/your/key

それでもSSH鍵をインポートできない場合は、1Passwordを使用して、最新の標準に基づいて[新しいSSH鍵を生Create](https://developer.1password.com/docs/ssh/manage-keys/#generate-an-ssh-key)できます。

### **SSH鍵をエクスポートする** <a href="#eo925jysqstq" id="eo925jysqstq"></a>

いつでも1Password からプライベートSSH鍵をエクスポートできます。

①1Passwordデスクトップアプリを開いてロックを解除します。![エクスポート オプションを表示するために秘密キー フィールドが強調表示された GitHub SSH キー項目。](https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2F2GRJgcCDbSqyYqDmdl9A%2F4.png?alt=media)

②エクスポートする SSH鍵を選択し、秘密鍵 フィールドを選択します。

③必要なエクスポート形式（OpenSSHまたはPKCS#8）を選択します。

PKCS#1形式の鍵を1Passwordにインポートした場合は、その鍵をPKCS#1形式でエクスポートするオプションもあります。![空のパスフレーズ フィールドとコピー ボタンおよびダウンロード ボタンを含む秘密キーのエクスポート ダイアログ。](https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2F3MuPn7hXfhBle9xB0RFK%2F5.png?alt=media)

④秘密鍵をエクスポートする方法を選択します。

エクスポートした秘密鍵を暗号化する（OpenSSH形式のみ）には、パスフレーズを入力し、\[Copy Encrypted Key]または\[Download Encrypted Key]を選択します。

秘密鍵を平文でエクスポートするには、パスフレーズフィールドを空のままにして（存在する場合）、\[Copy Unencrypted Key]または\[Download Unencrypted Key] を選択します。

⚠️秘密鍵を安全に保管してください

1Passwordは、アカウント外にSaveされたSSH鍵を保護することはできません。秘密鍵をエクスポートする必要がある場合は、安全な場所にSaveすることをお勧めします。暗号化されていない秘密鍵をディスクにSaveしないでください。

### **公開鍵を共有する** <a href="#id-618rfvtytprj" id="id-618rfvtytprj"></a>

1Passwordは、Createした秘密鍵ごとに公開鍵とフィンガープリントを自動的に生Createし、それを必要とするサービスや人々と共有できるようにします。

SSH鍵の公開鍵を常に正しい形式でコピーまたはダウンロードでき、フィンガープリントを使って全サービス間で鍵を比較および識別できます。![公開鍵をコピーまたはダウンロードして、他のユーザーと共有します。](https://4200399111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GVOyHz3wUSpdV3qlPwR%2Fuploads%2Fz7ai7H0bD5y9Hpg1TMHg%2F6.png?alt=media)

ブラウザーで公開鍵を提供できるプラットフォーム（SSH鍵設定パネルにあることが多い）の場合は、ブラウザで1Passwordを使って[公開鍵を入力](https://developer.1password.com/docs/ssh/public-key-autofill/)できます。

また、1Passwordのアイテム ビューから公開鍵をコピーして、必要な場所で共有したり、[Quick Access](https://support.1password.com/quick-access/)を使用してコンテキストを切り替えることなく公開鍵をさらにすばやく見つけたりすることもできます。

### **1Password 7でSSH鍵を表示する** <a href="#n3xjzpu03dq0" id="n3xjzpu03dq0"></a>

SSH鍵の生Create、インポート、共有には1Password 8が必要です。生Createまたはインポートした SSH鍵は、他のデバイスの 1Password 7アプリで表示およびコピーできます。公開鍵または秘密鍵を表示またはコピーするには、1Password 7の[更新されたバージョン](https://support.1password.com/update-1password/)を使用していることを確認してください。
