Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 100W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 16 / 15 Galaxy iPad Pro MacBook Pro/Air 各種対応 (0.9m ミッドナイトブラック)
¥1,790 (2025年4月26日 13:09 GMT +09:00 時点 - 詳細はこちら価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点で当該の Amazon サイトに表示されている価格および発送可能時期の情報が適用されます。)
sshの鍵をVaultに保管する機能を1Passwordが提供しています。下記の設定を~/.ssh/config
に加えるようドキュメントに記載されています。
Host *
IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
Macのローカルマシン上でsshを使う限りは問題ないのですが、たとえばiPadからMacにsshでリモートログインしたあと、Macから別のサーバに接続したい場合、例えばgit pushコマンドを実行すると失敗します。
これは1Passwordが生体認証を実行しようと、ローカルデスクトップ上に1Password GUIを起動するからです。ユーザーの反応がないのでタイムアウトしてエラーになります。
iPad側のSSHクライアントアプリ(例えば、Shelly)にSSH Agentの転送機能がある場合、Mac側のssh鍵を使わなずに、iPad側の鍵情報を優先的に利用することでこの問題を回避できます。具体的には、サンプルのConfigを下記のように書き直します。
Match host * exec "[[ ! -n $SSH_CLIENT ]]"
IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
Matchを使って分岐ロジックを書くのがポイントです。
FAQ
Q. ~/.zshrc
にfunctionとして分岐ロジックを記述する方法は駄目なの?
A. 駄目です。中継サーバ上のシェルからさらにssh
する場合は動作しますが、git push
の場合にはzsh経由でsshが実行されるわけではないので無視されてしまいます。sshクライアントの設定で分岐を記述する必要があります。