【1Password移行⑥】SSH鍵を一括取り込みしてディスクから消す

2026.05.29 09:00
2026.05.13 23:46
【1Password移行⑥】SSH鍵を一括取り込みしてディスクから消す

前回、1本だけSSHキーを移行してSSH接続が通ることを確認しました。
今回は残りの鍵をまとめて移行して、ディスク上のファイルを削除していきます。

移行対象の鍵を整理する

まず ~/.ssh/ にある秘密鍵を全部リストアップします。

# 秘密鍵ファイルを一覧表示(.pub がついていないファイル)
ls ~/.ssh/ | grep -v '\.pub$' | grep -v 'config' | grep -v 'known_hosts' | grep -v 'authorized_keys'

出てきたファイルのうち、まだ1Passwordに移行していないものが今回の対象です。
古くて使っていない鍵があれば、この機会に削除を検討するのもありです。

op CLI で鍵をインポートする

1PasswordアプリのGUI操作でも1本ずつインポートできますが、CLIを使うと少し楽です。

まずCLIでサインインします。

op signin

SSHキーのインポートは op item create で行います。

# 秘密鍵ファイルを読み込んでSSH Keyアイテムを作成
op item create \
  --category "SSH Key" \
  --title "SSH-本番サーバー" \
  --vault "Infra" \
  "private key[concealed]=$(cat ~/.ssh/server_key)"

ただ、正直なところ鍵が2〜3本なら GUIでインポートするのが一番間違いが少ない です。
CLIのSSH Key作成はフィールド指定が少し独特なので、GUI操作のほうが確実です。

鍵が10本以上あるなら自動化する価値がありますが、そうでなければGUIで1個ずつやるのをおすすめします。

全部移行できたか確認する

インポートが終わったら、SSH agentに鍵が認識されているか確認します。

ssh-add -l

1Passwordに保存した鍵の一覧が表示されれば認識されています。
「The agent has no identities.」と出る場合は、1Passwordアプリを開いてSSH agentが有効になっているか確認してください。

接続確認してからディスクのファイルを削除する

必ず接続確認をしてから削除します。削除後に「やっぱり繋がらなかった」となると面倒なので。

各鍵の接続先で確認します。GitHubなら:

ssh -T git@github.com

本番サーバーへのSSHなら実際に接続してみます。
全部通ったら、秘密鍵ファイルを削除します。

# 秘密鍵ファイルを削除(公開鍵は残してもOK)
rm ~/.ssh/id_ed25519
rm ~/.ssh/id_rsa
rm ~/.ssh/server_key

# 確認
ls ~/.ssh/

秘密鍵(.pub なし)のファイルがなくなっていればOKです。
公開鍵(.pub あり)は残しておいても問題ありません。

バックアップも削除する

前回作ったバックアップも削除します。
ここを忘れると「ディスクから消した」意味がなくなります。

rm -rf ~/ssh-backup-*

ここまで完了すると、~/.ssh/ には設定ファイル(configknown_hosts、公開鍵)だけが残った状態になります。
秘密鍵はすべて1Passwordの中です。

次回 B-4 では、移行中・移行後にハマったポイントをまとめます。

今回は以上です!