1. Home
  2. /
  3. サービス
  4. /
  5. 1passwordのSSHキー管理状態で踏み台を設定する

1passwordのSSHキー管理状態で踏み台を設定する

1passwordのSSHキー管理状態で踏み台を設定する

結論


Host humidai
  HostName humidai.example.com
  User user
  IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
  IdentityFile "~/.ssh/humidai.pub"

Host target-server
  HostName target-server.example.com
  User user
  ProxyCommand ssh humidai -W %h:%p
  IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
  IdentityFile "~/.ssh/target-server.pub"

のConfigでクライアント側の1password管理のキーを使用して踏み台サーバーへの接続を行います。

序文

SSH接続は人類が生きていく上で欠かせない行動のひとつです。普段自宅のリソースへはTailscaleでVPN接続をしそこからSSHへ接続を行っています。

しかし、移動中の接続構成としてはあまり良くありません。電車で時速100kmを超えてくるとときどき詰まりを感じますし、新幹線で時速200kmを超えるとかなり苦痛になってきます。

TailscaleはWiregurdベースの技術でありVPN接続技術のなかではオーバーヘッドが少なく優秀な技術の認識です。

About WireGuard · Tailscale Docs

Learn how Tailscale builds on WireGuard to offer single sign-on (SSO) and other capabilities.

となるとVPNの選定を変えたとしてもこれ以上の改善を期待できそうにないため他の手法でのアクセス方法を検討します。

そこで古典的な踏み台接続に変更をすることにしました。踏み台にしたところで、クラウドに設置している踏み台から自宅リソースへのアクセスはVPNのためむしろ経由が1階層多くなるだけです。

そんな中見つけた物がquicssh-rsです。

GitHub - oowl/quicssh-rs: QUIC proxy that allows to use QUIC to connect to an SSH server without needing to patch the client or the server.

QUIC proxy that allows to use QUIC to connect to an SSH server without needing to patch the client or the server. - oowl/quicssh-rs

QUICでSSH通信をプロキシすることで、パケロスやIPアドレスの変更に強くなります。これで新幹線の中でも快適にSSH接続ができるようになるはずです。

そしてここからが本題ですが、普段SSHキーの管理はすべて1passwordで管理しています。この場合に踏み台サーバーには鍵を配置せずに端末側にだけ1passwordを入れている状態で踏み台接続ができるようになれば理想です。

本記事ではその方法について解説しますが、SSHのconfigを貼れば終わる話なのでそろそろこの記事は終わりです。

解説

基本的には普通の踏み台SSHの書き方と変わりません。

1passwordならではの設定としては、IdentityAgentで1passwordのエージェントを指定します。

IdentityFileでSSH接続する公開鍵を指定します。

公開鍵を指定する理由ですが、1Passwordではどのホストにどのキーを利用するかの情報を持っていません。 そのためデフォルトではすべてのキーを総当たりで利用しようとします。6個以上のキーペアを保存しているとSSH接続をする際の試行回数が最大値を超えてしまいます。

そのため、このHostはこの公開鍵とconfigに設定することで、1Passwordのエージェントがどのキーを利用するかを指定しています。

Advanced use cases | 1Password Developer

Learn more about how to use the SSH agent for specific hosts, avoid authentication limits, and sign Git commits in multiple GitHub accounts.

サーバーへの接続設定が増えるたびにここの記載が必要なため、SSHのConfigを1Passwordが管理するような仕様にしてくれると良いのにな……と日々思います。

サイト内の商品リンクは一部アフィリエイトリンクとなっています

関連記事

Synology DS215jを223jに移行した

Synology DS215jを223jに移行した

自宅のバックアップ用のNASであるSynology Disk Station 215j、Synologyの製品は基本的に後ろ2桁が販売年になっているため10年間、毎日稼働し続けています。 本来はDS1821で置き換えて引退予定でしたが、 RAID崩壊事件があり16TBのHDDを2台RAID1で再構築して重要なデータをNAS間でバックアップされる環境を構築しました。 そのため、想定していた運用年数を超過してしまいました。Amazonプライムデーセールで割引になっていた223jに置き換えを行いました。 215jと223jの比較 Synology NASキット 2ベイ DS223j クアッドコアCPU搭載 1GBメモリ搭載 ライトユーザー向け 国内正規代理店フィールドレイク取扱品 電話サポート対応品 DiskStation Amazon 項目 DS215j DS223j CPU Marvell Armada 375 88F6720 2コア 800MHz Realtek RTD1619B 4コア 1.7GHz メモリ 512MB DDR3 1GB DDR4 ベイ数 2ベイ 2ベイ ネットワーク 1GbE RJ-45ポート×1 1GbE RJ-45ポート×1 USBポート USB 3.0×1、USB 2.0×1 USB 3.2 Gen 1×2 サイズ 165 × 100 × 225.5mm 165 × 100 × 225.5mm 重量 0.88kg 0.88kg 8年の差がありながら、基本的な仕様や外観はほとんど変わりません。
Google Cloudの利用料金を毎日Discordに投稿する

Google Cloudの利用料金を毎日Discordに投稿する

最近、LLMサービスはGeminiを中心に利用しています。高い品質が求められる場合はClaude Sonnet 3.7やo3などを使い分けていますが、手軽な要約や翻訳といったタスクでは、Gemini flash 2.0が第一候補です。 YouTubeの字幕翻訳、Webページの翻訳、Discord常駐Botなど、これら全てにGemini flash 2.0を活用しています。 大量に利用しても1日の料金は数円程度とわずかですが、従量課金制のため、毎日の利用料金をDiscordに通知できると安心感が増します。