0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Obsidian git を目的とした Windows での鍵エージェント設定サンプル

Posted at

目的

Obsidian Git プラグインで SSH 鍵エージェントを利用したい。
ついでに他の接続方法(下記)も同じエージェントを使いたい。

  • PuTTY (および WinSCP 等の関連アプリ)
  • windows の OpenSSH
  • git bash(Git for Windows)
  • (未着手) WSL2 上の SSH

概要

Qiita - 混沌を極めるWindowsのssh-agent事情#筆者の構成 のバリエーションです。(作者の @slotport 様、素晴しい記事をありがとうございます)

差異は次の 2点です。

  • Obsidian Git 用の設定(Git for Windows で Windows 添付の OpenSSH を使う)
  • やや細かい手順を記載

設定の概要(手順は下で詳述)

  • pageant をスタートアップに追加(自動起動)
  • 自動起動 pageant に OpenSSH 用オプションを追加
  • OpenSSH 設定に pageant 連携を追加
  • 環境変数で Git for Windows の ssh を変更(OpenSSH 利用)
  • (念の為)Git for Windows の ssh 実行ファイルを隠す
  • サインインし直して動作チェック

詳しい人向けサマリー(要点のみ)

  • pageant に起動時オプション --openssh-config <ファイルパス> を追加
  • OpenSSH の .ssh/config に Include <ファイル> 行を追加(上のファイルを指定)
  • Git for Windows が OpenSSH のバイナリを使うよう環境変数 GIT_SSH を設定

※GfW への対応が姑息的なので、他の MSYS2 環境からの鍵エージェント利用には対応していません(そういう利用ケースは稀かと…)

設定手順

pageant をスタートアップに登録

  1. Win+R キーで「ファイル名を指定して実行」ダイアログを開き shell:startup と入力して OK ボタンでスタートアップフォルダを開く
  2. 「新規作成」でショートカットの作成を開始し、PuTTY フォルダの pageant.exe を参照先に選ぶ
  3. 「次へ」ボタンで進み、好きな名前を付けて「完了」ボタンを押す

自動起動 pageant に OpenSSH 用オプションを追加

  1. 上で作成したショートカットを右クリックして「プロパティ」を開く
  2. 「リンク先」の内容の最後に半角スペースと --openssh-config %USERPROFILE%\.ssh\pageant.conf を追加する。
    ※ファイル名「pageant.conf」と、そこまでのパスは変えても良いが、後述の手順でも同じ指定にすること
  3. 確認:作成したショートカットを実行し、タスクトレイで pageant が動作すること

補足:プロパティの「作業フォルダ」にSSH鍵フォルダを指定しておくと、鍵の追加時にそこから始まるので便利

OpenSSH 設定に pageant 連携を追加

  1. エクスプローラを開き、アドレスバーに %USERPROFILE% と入力して移動する
  2. 中に .ssh フォルダがあるはずなので、それを開く(無ければ作る)
  3. config ファイルをメモ帳(又は好きなエディタ)で開く(無ければ作る)
  4. 先頭(か適当な位置)に次の1行を追加:Include pageant.conf
    • pageant のオプションで別のファイル名やパスを指定した場合は、それに合わせる
    • config ファイルの位置が基準になるので、そこからの相対パスでよい
  5. 確認:OpenSSH(Windows の ssh)で動作チェック
    (pageant に鍵を登録し、接続を試す。パスフレーズを聞かれずに済めば OK)

環境変数で Git for Windows の ssh を変更(OpenSSH 利用)

  1. スタートメニュー → 設定 → システム → バージョン情報 を開く
  2. 「デバイスの仕様」下部「関連リンク」の「システムの詳細設定」をクリック(Win11の場合)
  3. 表示されたダイアログ下部「環境変数」ボタンをクリック
  4. ユーザ環境変数の「新規」ボタンをクリック
  5. 以下のように入力して「OK」で確定
    • 変数名:GIT_SSH
    • 変数値:%WINDIR%\System32\OpenSSH\ssh.exe
  6. 確認:ユーザ環境変数に追加され、値の表示が「C:\Windows\System32…」のように変わっている事
  7. 環境変数ダイアログを「OK」で閉じる
  8. システムのプロパティダイアログも「OK」で閉じる

(念の為)Git for Windows の ssh 実行ファイルを隠す

  1. Git for Windows の Git Bash を開く
  2. (Git for Windows 添付の)ssh 類を以下のように移動して隠す
    cd /usr/bin
    mkdir git_for_windows_ssh
    mv ssh* git_for_windows_ssh/
    # 下はスキップしてもよい(使うかもしれないファイルを戻しているが動作は未確認)
    cd git_for_windows_ssh
    mv sshd.exe ssh-copy-id ssh-pageant.exe ../
    

代替手順:ssh.exe だけ改名

Git Bash で以下を実行

mv /usr/bin/ssh.exe /usr/bin/gfw_ssh.exe

巻き戻し方法(移動)

  1. Git Bash を開く
  2. 移動していたファイルを元の場所に戻す
    cd /usr/bin/git_for_windows_ssh
    mv ssh* ..
    

巻き戻し方法(代替手順:改名)

Git Bash で以下を実行

mv /usr/bin/gfw_ssh.exe /usr/bin/ssh.exe

サインインし直して動作チェック

  1. 環境変数の変更を有効にするため、一度サインアウトする(再起動でも可)
  2. サインインし直すと、タスクバーに自動起動された pageant が有るはず
  3. pageant にSSH鍵を追加(パスフレーズがあれば聞かれる)しておく
  4. 上で追加したSSH鍵を使うホストに Git Bash で ssh すると(パスフレーズ不要で)ログインできるはず
  5. 同様に、上で追加したSSH鍵を利用する git コマンドを試す(パスフレーズ不要のはず)
  6. Obsidian Git プラグインの動作を試す(SSH 鍵は pageant に追加しておく)

注意点

  • pageant 以外(ssh-add など)での鍵の追加はできません
    → Git Bash で ssh-add として pageant.exe にシンボリックリンクを設定するのは可能です(コマンド発行時に .ppk 鍵指定の点に注意)
  • 鍵の追加タイミングはご自身で調整してください
    (pageant 起動時に鍵ファイルパスも指定は可能。その場合は起動時にパスフレーズを聞かれます…)

参照リンク

Qiita - 混沌を極めるWindowsのssh-agent事情

https://qiita.com/slotport/items/e1d5a5dbd3aa7c6a2a24
そのものズバリの説明。こちらのおかげで今回の設定ができました。
非常によくまとまっていますので、ぜひ一読されることをお勧めいたします。

Omni SSH Agent

https://github.com/masahide/OmniSSHAgent
各種の接続を受け付ける汎用 pageant 互換アプリとのこと。
便利そうですが、今回は pageant メイン(+他の互換アプリを使うかも)なのでパスしました。

※ssh-add コマンドからも鍵の追加ができるようです。そのような使い方を希望される方はご検討されては?

stream-connector

https://www.pg-fl.jp/download/stream-connector.htm
ソケット通信やパイプ入出力を転送するための Windows アプリとのこと。
これを pageant と組み合わせる方法が「Qiita - 混沌を〜」のコメントに有りました。

tcp,wsl,cygwin など、いろいろ対応しているので、ユーティリティとしても活用の機会がありそうですね。

@ IT - 【Windows 11対応】Path環境変数を設定/編集して、独自のコマンドを実行可能にする

https://atmarkit.itmedia.co.jp/ait/articles/1805/11/news035.html
Windows11 での環境変数の設定手順の紹介です。
画面写真が豊富なので、上の文章だけで分かり辛い場合はご参照ください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?