1Password for SSHを使う
1Passwordマニュアル|SSHキーの生成とGitへの公開鍵の自動入力を簡単に行う方法を解説し、安全なアクセスを実現します。
1Password for SSHを使う
1Passwordを使ってSSHキーを生Createし、お気に入りのGitプラットフォームに公開鍵を自動入力できます。次に、1Password SSHエージェントをセットアップし、SSHまたはGitクライアントを設定して、1Password SSHエージェントを使ってGitおよびSSHのワークフローを認証できるようにします。
次の例では、GitHub を使ってSSHのワークフローを最初から最後まで説明していますが、お気に入りのGitまたはクラウドプラットフォームで使うために手順を変更することもできます。
必要条件
Mac 1Passwordサブスクリプション 1Password for Mac Safari、Chrome、Firefox、Edge、Brave用の1Passwordエクステンション。ブラウザーでSSHキーを生Createして入力できます。
💡ヒント 1Password SSHエージェントを使う際の最高のエクスペリエンスを実現するために、Touch IDまたはApple Watchを設定して 1Password のロックを解除し、SSHキー要求を認証することができます。
Windows 1Passwordサブスクリプション 1Password for Windows Microsoft OpenSSH
Chrome、Firefox、Edge、Brave用の1Passwordエクステンション。ブラウザーでSSHキーを生Createして入力できます。
Linux
1Passwordサブスクリプション
1Password for Linux
Safari、Chrome、Firefox、Edge、Brave用の1Passwordエクステンション。ブラウザーでSSHキーを生Createして入力できます。
⚠️注意 1Password SSHエージェントは、FlatpakまたはSnap Storeの1Passwordインストレーションでは動作しません。SSHエージェントを使うには、別の方法で1Password for Linuxをインストールしてください。
ステップ 1:SSHキーを生Createする
①1Passwordアプリを開いてロックを解除し、Personal、Private、またはEmployeeの保管庫に移動します。この保管庫の名前は、アカウントの種類によって異なります。
②[New Item] をクリックし、[SSH Key]を選択します。
③[Add Private Key] > [Generate New Key]をクリックします。
④SSHキーの種類として Ed25519またはRSAを選択し、[Generate]をクリックします。
⑤完了したら、[Save]をクリックします。
1Passwordは、秘密鍵と公開鍵とそのフィンガープリントを含むSSHキーを生Createします。
詳しく知るには、SSHキーの生Createまたはインポート、さらに1Password SSHエージェントで使用できるSSHキーのページをご覧ください。
ステップ2:公開鍵をアップロードする
SSHキーを生Createしたら、GitHubアカウントに公開鍵を追加できます。GitHubのSSHキー設定ページにアクセスし、 1Passwordブラウザーエクステンションまたはデスクトップアプリを使って公開鍵をアップロードします。
ブラウザーエクステンションを使う場合 ①GitHubの設定ページで、[Title]または[Key]のフィールドを選択します。 1Passwordに候補が表示されない場合は、フィールド内の1Passwordアイコンをクリックします。 ②先ほどCreateしたGitHubSSHキーを選択します。1Passwordが対応するフィールドに公開鍵とタイトルを自動的に入力します。 ③設定ページで[Add SSH Key]をクリックしてGitHubアカウントにキーをSaveします。
これでSSHキーを使ってGitHubで認証できるようになりました。他のGitやクラウドプラットフォームを使う例については、”Autofill public keys”のページを参照してください。
デスクトップアプリを使う場合
①1PasswordでCreateしたGitHubSSHキーに移動して選択します。
②アイテムの詳細から公開鍵をコピーし、GitHub設定ページのキーフィールドに貼り付けます。クイックアクセスを使って公開鍵を検索してコピーすることもできます。
③次に、設定ページで[Add SSH Key]をクリックして、キーをGitHubアカウントにSaveします。
SSHキーを使ってGitHubで認証できるようになりました。
他の Git またはクラウド プラットフォームを使う例については、”Autofill public keys”を参照してください。
ステップ3:1Password SSHエージェントを有効にする
1PasswordデスクトップアプリにはSSHエージェントが含まれており、これをオンにするとバックグラウンドで実行され、SSHクライアントの認証を処理します。
SSHエージェントをオンにするには、次の手順に従ってください。
Mac ①1Passwordアプリを開き、メニューバーから[1Password] > [Settings]を選択し、[Developer]を選択します。 ②[Set Up SSH Agent]を選択し、接続を承認する際にSSHキー名を表示するかどうかを選択します。 ③(オプション)SSHエージェントがいつ、どのくらいの頻度でSSHリクエストの承認を求めるか、承認オプションを調整します。
以前にSSHエージェントをオフにし、再びオンにしたい場合は、[Use the SSH agent]チェックボックスを選択します。 接続を認証する際にSSHキー名を表示するように選択すると、SSHクライアントからの要求を認証する際に、1Passwordがどのキーへのアクセスを要求しているのかを識別しやすくなります。認証プロンプトにキー名を表示するには、1PasswordがSSH KeyアイテムのタイトルをローカルストレージにSaveする必要があります。この機能をオフにするには、Securityセクションの[Display key names when authorizing connections]チェックボックスの選択を外します。1Passwordアプリを閉じてもSSHエージェントが実行され続けるようにするには次のようにします。
①1Passwordアプリを開き、メニューバーから[1Password] > [Settings]を選択し、[General]を選択します。 ②[Keep 1Password in the menu bar]と[Start at login]のチェックボックスを選択します。
Windows ⚠️注意 1Password SSHエージェントは、Microsoft OpenSSHをサポートするSSHクライアントでのみ動作します。 詳細については、SSHクライアントの互換性を参照してください。
OpenSSH認証エージェントサービスがインストールされ、実行されているか確認する
1Password で SSH エージェントをオンにする前に、OpenSSH 認証エージェントサービスがインストールされているか確認する必要があります。
①[Services] > [OpenSSH Authentication Agent]に進みます(キーボードで Win + R を押してRunウィンドウを開き、services.mscと入力してEnterキーを押すか、[OK]をクリックします)。 ②サービスの一覧から[OpenSSH Authentication Agent]を探します。
リストにOpenSSH Authentication Agentがない場合は、1PasswordのSSHエージェントをオンにする手順に進んでください。 リストにOpenSSH Authentication Agentが表示されている場合は、この手順を続けて起動を無効にし、実行されていないことを確認してください。
③サービスの一覧から[OpenSSH Authentication Agent]を選択し、Enterキーを押します。 ④[Startup type]メニューで、[Disabled]を選択します。サービスのステータスでエージェントが実行中であることが表示されている場合は、[Stop]をクリックします。 ⑤[Apply]をクリックし、[OK]をクリックします。
その後は、1Password SSHエージェントが引き継ぎ、システム全体パイプの\\.\pipe\openssh-ssh-agentをリッスンできるようになります。
1PasswordのSSHエージェントをオンにする
1PasswordでSSHエージェントをオンにするには、以下の手順に従ってください 。
①1Passwordアプリを開き、サイドバーの上部にあるアカウントまたはコレクションをクリックし、[Settings] > [Developer]を選択します。
②[Set Up SSH Agent]を選択し、接続を承認する際にSSHキー名を表示するかどうかを選択します。
③(オプション)SSHエージェントが SSHリクエストの承認を求めるタイミングと頻度の承認オプションを調整します。
以前にSSHエージェントをオフにしており、再度オンにする場合は、[Use the SSH agent]チェックボックスを選択します。
接続を認証する際にSSHキー名を表示するように選択すると、SSHクライアントからの要求を認証する際に、1Passwordがどのキーへのアクセスを要求しているのかを識別しやすくなります。認証プロンプトにキー名を表示するには、1PasswordがSSHキーアイテムのタイトルをローカルストレージにSaveする必要があります。この機能をオフにするには、[Security]セクションの[Display key names when authorizing connections]チェックボックスの選択を解除します。
1Passwordアプリを閉じてもSSHエージェントが実行され続けるようにするには次のようにします。
①1Passwordを開き、サイドバーの上部にあるアカウントまたはコレクションをクリックし、[Settings] > [General]を選択します。
②[Keep 1Password in the notification area]チェックボックスを選択します。
Linux ①1Passwordアプリを開き、サイドバーの上部にあるアカウントまたはコレクションをクリックし、[Settings] > [Developer]を選択します。 ②[Set Up SSH Agent]を選択し、接続を承認する際にSSHキー名を表示するかどうかを選択します。 ③(オプション)SSHエージェントが SSHリクエストの承認を求めるタイミングと頻度の承認オプションを調整します。
以前に SSHエージェントをオフにし、再びオンにしたい場合は、[Use the SSH agent] チェックボックスを選択します。
接続を認証する際にSSHキー名を表示するように選択すると、SSHクライアントからの要求を認証する際に、1Password がどのキーへのアクセスを要求しているのかを識別しやすくなります。 認証プロンプトにキー名を表示するには、1PasswordがSSH KeyアイテムのタイトルをローカルストレージにSaveする必要があります。 この機能をオフにするには、[Security]セクションの[Display key names when authorizing connections]チェックボックスの選択を外します。
1Passwordアプリを終了してもSSHエージェントが実行され続けることを確認するには次のようにします。
①1Passwordを開き、サイドバーの上部にあるアカウントまたはコレクションをクリックし、[Settings] > [General]を選択します。
②[Keep 1Password in the notification area]チェックボックスを選択します。
ステップ4:SSHまたはGitクライアントを設定する
1PasswordでSSHエージェントをオンにした後は、認証にエージェントを使うようにSSHクライアントを設定する必要があります。
Mac IdentityAgentスニペットを~/.ssh/configファイルに追加します。 Host * IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
まだ~/.sshフォルダや設定ファイルが存在しない場合は、最初にCreateしてください。SSHコマンドを実行するシェルでSSH_AUTH_SOCK環境変数を設定することもできます。 export SSH_AUTH_SOCK=~/Library/Group\ Containers/2BUA8C4S2C.com.1password/t/agent.sock エージェントのパスを入力しやすくするには、オプションで以下のコマンドを実行し、~/.1password/agent.sockのシンボリックリンクをCreateします。 mkdir -p ~/.1password && ln -s ~/Library/Group\ Containers/2BUA8C4S2C.com.1password/t/agent.sock ~/.1password/agent.sock
これでSSHクライアントは全てのホストで1Password SSHエージェントを使うようになります。 徐々に1Password SSHエージェントに移行したい場合は、全てのホストではなく、1つまたは複数の特定のホストに対してのみSSHエージェントを使うようにSSHクライアントを設定することができます。段階的移行についてはこちらをご覧ください。
SSHクライアントの中には、~/.ssh/configファイルが提供する全て設定オプションをサポートしていないものもあります。SSHクライアントの互換性についてはこちらをご覧ください。
Windows SSHクライアントの認証にSSHエージェントを使うための追加設定は必要ありません。GitでSSHエージェントを使うには、Gitの設定でcore.sshCommand変数を、Microsoft OpenSSHを使うように設定します。 git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"
gitconfigファイルを手動で編集することもできます。 [core] sshCommand = C:/Windows/System32/OpenSSH/ssh.exe
1Passwordで最高のGit体験をするには、最新バージョンのGit for Windows(バージョン2.33以降)をインストールしてください。 Windows Subsytem for Linux(WSL)を使っている場合は、WSLで1Password SSHエージェントを使うことができます。
Linux IdentityAgentスニペットを~/.ssh/configファイルに追加します。 Host * IdentityAgent ~/.1password/agent.sock
~/.sshフォルダーまたはconfigファイルがまだ存在しない場合は、まずCreateしてください。
SSHコマンドを実行するシェルで環境変数SSH_AUTH_SOCKを設定することもできます。 $ export SSH_AUTH_SOCK=~/.1password/agent.sock これで、SSHクライアントは全てのホストに対して1Password SSHエージェントを使うようになります。
1Password SSHエージェントに段階的に移行したい場合は、全てのホストではなく、1つまたは複数の特定のホストに対してのみSSHエージェントを使うようにSSHクライアントを設定できます。段階的な移行の詳細については、こちらの高度なユースケースをご覧ください。
~/.ssh/config一部のSSHクライアントは、ファイルが提供する全ての設定オプションをサポートしていません。SSHクライアントの互換性の詳細については、こちらをご覧ください。
ステップ5:コマンドを起動する
これで、GitHubで1Password SSHエージェントを使い始める準備が整いました。 プロジェクトディレクトリーから、次のコマンドを実行します。
git pull
今すぐGitHubでgit pullを実行できるプロジェクトがない場合は、代わりに次のコマンドを実行して GitHub SSHの設定を手早くテストすることができます。
ssh -T [email protected]
ステップ6:SSHリクエストを承認する
1Password は、ターミナルまたは他のSSHクライアントがSSHキーを使うことを許可するように求めます。プロンプトに示された認証オプション(Touch ID、Windows Hello、アカウント パスワードなど)を使って、この要求を承認できます。1Password がロックされている場合は、SSHエージェントが秘密鍵にアクセスできるように、アプリのロックを解除するように求められます。


リクエストを承認すると、1Passwordがロックされるか終了するまで、再度プロンプトが表示されることなく、そのアプリケーションに対して同じSSHキーを引き続き使用できます。また、プロンプトの頻度を増やしたり減らしたりすることを含めて認証設定の変更もできます。
1Password SSHエージェント認証モデルの詳細をご覧ください。
認証オプションを調整する
エージェントがSSHキーの承認を記憶する期間と、各キーに対して承認する使用方法を決定するために選択できるオプションがいくつかあります。これらのオプションによって、SSHエージェントがSSHリクエストの承認を求めるタイミングが決まります。
1Password側での設定
1Password を開き、サイドバーの上部にあるアカウントまたはコレクションをクリックして、[Settings] > [Developer]を選択します。SSHエージェントのセキュリティー設定では、ニーズに最適なオプションを選択できます。設定はいつでも変更できます。

1Passwordは次のようにSSHリクエストの承認を求めることがあります。
For each new application(デフォルト):新しいアプリが特定のSSHキーを使うためにSSHリクエストを承認するように求められます。
For each new application and terminal session:最初のオプションと同様に、特定のSSHキーを使うために、新しいアプリからのSSHリクエストを承認するように求められます。アプリがターミナルエミュレーターまたはターミナルが組み込まれたIDEである場合は、そのアプリで新しいターミナルタブがCreateられるごとにリクエストを承認するようにも求められます。

1Passwordがキーの承認を記憶する期間を選択できます。
Until 1Password locks(デフォルト):1Password がロックされるたびに、キーの承認がエージェントのメモリから消去され、以前に承認したSSHクライアントがキーを使うために再承認するように求められます。例えば、ターミナル アプリケーションが GitHub のSSHキーを使うように承認した後、1Password がロックされると、1Password がロック解除されたときに、ターミナルからの GitHubSSHキーを使うための新しいリクエストを再承認する必要があります。 1Password のロック設定を変更する方法はこちらで学んでください。
Until 1Password quits:Password が終了するたびに、キーの承認がエージェントのメモリから消去されます。エージェント セッションとバックグラウンド プロセスも終了します。SSHエージェントを使ってSSHキーを使う新しいリクエストを承認するには、1Passwordを再度開く必要があります。
For a set amount of time:4、12、24時間から選択できます。これらのオプションのいずれかを選択すると、1Password がロックされている場合でも、その期間中はキーの承認がエージェントのメモリに残ります。既に承認した同じSSHキーを使うために同じアプリケーションからの新しいリクエストを再承認する必要はありませんが、SSHエージェントが秘密鍵にアクセスできるように1Passwordのロックを解除するように求められます。
認証プロンプト内
SSHキーを使うクライアントの全ての承認プロンプトには、全てのアプリケーションでそのキーの使用を承認するオプションが含まれています。このオプションをオンにするには、[Approve for all applications]チェックボックスをオンにします。

このオプションは、個々のSSHキーに対して選択できます。これにより、デバイス上の現在の OSのユーザーアカウントで実行されている全てのアプリが、エージェントセッションの期間中、そのSSHキーを使うことが一時的に許可されます(1Password の開発者設定で選択したオプションによって異なります)。このオプションは、他の設定と併用できます。
SSHエージェントの認証オプションの詳細についてはこちらで詳しく説明します。