BLOGTIMES
» ArchiveList (Tag for "PuTTY" )
«Prev || 1 · 2 · | Next»
2021/05/23

Git for Windows でも Pageant が使いたい!!

ssh  git  PuTTY  windows10 

Git for Windows で Pageant を使った認証をやろうとしたら意外と面倒な作業になってしまいました。

[失敗] plink.exe は簡単だけど・・・

Git for Windows で ssh の公開鍵認証をしたい場合には、最も単純な方法として環境変数 GIT_SSH に PuTTY の plink.exe のパスを設定する方法があります。さっそく試してみたところ、以下のプロンプトが出たときに y を入力することとができないので、この方法は断念。ネットで検索*1するとそれなりの件数がヒットするので、良くあるハマりパターンのようです。

Store key in cache? (y/n)

Windows 10 付属の OpenSSH + wsl-ssh-pageant + Pageant (PuTTY) の組み合わせ

僕は普段、SSH は TeraTerm + Pageant (PuTTY) という環境で使っていて、公開鍵の管理も Pageant に寄せてあります。最近の Windows 10 には OpenSSH が標準で搭載されていますが、これは Pageant にはもちろん対応していないので、これまで使うことはありませんでした。

単純な方法としては .ppk を OpenSSH 形式に変換して鍵自体を OpenSSH に合わせてしまうという方法もありますが、これは秘密鍵をもう一式持つことになるという欠点がありませす。鍵のファイルが増えると管理が面倒なので、今回は OpenSSH と Pageant の仲立ちをしてくれる wsl-ssh-pageant というユーティリティを使う事にしました。この方法も結構面倒ですが、鍵の管理に比べたらマシです。

wsl-ssh-pageant のセットアップ

wsl-ssh-pageant のリポジトリから wsl-ssh-pageant-amd64-gui.exe のバイナリを取得します。
適当なところに配置したら、バイナリと同じ場所に以下のような bat ファイルを作成します。

wsl-ssh-pageant-start.bat

start wsl-ssh-pageant-amd64-gui.exe -systray -winssh ssh-pageant

ファイルができたら、あとはこの bat をダブルクリックすると wsl-ssh-pageant を起動することができます。
うまく起動できればタスクトレイにオレンジ色の鍵のアイコンが見えるはずです。

次回以降は自動起動するように、スタートアップにショートカットを放り込んでおくと良いと思います。

OpenSSH と Git for Windows の設定

あとは Git for Windows に Windows 10 標準の OpenSSH を使うようにすることと、Windows 10 標準の OpenSSH に ssh-agent の代わりに wsl-ssh-pageant を使うように設定をしてやれば、頭書の問題は解決できます。前者は GIT_SSH 環境変数を設定することで、後者は SSH_AUTH_SOCK 環境変数を設定することでそれぞれ実行することができます。

GUI からやっても良いのですが、打ち間違えが怖いのでコマンドで直接レジストリを書き換えることにします。
ユーザー環境変数で十分なので、以下のコマンドは管理者権限で実行する必要はありません

cmd /c reg add "HKCU\Environment" /v GIT_SSH /t REG_SZ /d "C:/Windows/System32/OpenSSH/ssh.exe" /f cmd /c reg add "HKCU\Environment" /v SSH_AUTH_SOCK /t REG_SZ /d "\\.\pipe\ssh-pageant" /f

これで Git for Windows でも Pageant による公開鍵認証ができるはずです。


at 21:39 |
2019/07/24

PuTTY を 0.72 にアップデート

PuTTY 
PuTTY 0.72 - PuTTY を 0.72 にアップデート

PuTTY が 0.72 になっていたのでアップデートしてみました。

以下のリリースノートを見ると、セキュリティ問題の修正が入っているようです。
EU の資金による報奨金プログラムによって見つけられたものみたいですね。

PuTTY Change Log

Security fixes found by the EU-funded bug bounty

PuTTY は本家版の他にもパッチが当たった亜種のようなものがいろいろありますが、僕はトークンに対応した PuTTY CAC を使っています。

Releases · NoMoreFood/putty-cac

This PuTTY CAC 0.72 release is based on the upstream PuTTY 0.72 code. This release was compiled with Microsoft Visual Studio 2019.

    at 22:49 |
    2017/06/04

    Yubikey で SSH する

    yubikey  ssh  PuTTY 
    [正規販売代理店品]YubiKey 4 Nano

    Yubikey は安全な秘密鍵・公開鍵の保存場所なので、これが SSH で使えるかどうか試してみました。

    Linux ならばもう少しシンプルになると思いますが、今回は一般的な使い勝手を考えて Windows 環境です。
    必要になるものは

    の3つ。

    あらかじめ PIV Tools や OpenS、 PuTTY-CAC はインストールをおこなっておきます。
    また Yubikey には PIV Tools で PIN の設定や証明書の生成は完了させておきます。

    以下のように OpenSC 付属の pkcs15-tool を使うと公開鍵が取り出せるので、サーバの authorized_keys に登録しておきます。

    C:\Program Files\OpenSC Project\OpenSC\tools>pkcs15-tool.exe --read-ssh-key 1 Using reader with a card: Yubico Yubikey 4 OTP+U2F+CCID 0 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCTEIA8kdNshaGfHf8yAUv8sW3iaW8FjrA825dUqaQCMw3pHNFvZDsYdio/3ptNkoHd7DT6jb3TTY1c1AN5Yu/2a2Z3sN5JWctm1Blf0PYb6JU1qQ8lnBecVMI/QaGsTGvrnhaeS9HAdDRZF1Pt2xg4iWuiw+CEo21r+h8z82TDBaKJJAWxpZo8oMdGM+RPEoA4R0th91hpxMSI+GDShfxKTzWisejqt3ip5QXVWWK5PQSeL1mMwp0REZcxtSCHCsso09pWgQ+u1kJ/cfHPR6a3IRaeP8reX2cIZXoBbVwE+eNKxYNfsdBgYaIbohaidSXnih1zogMZ7O5/PrxdWOSJ PIV AUTH pubkey

    あとは PuTTY-CAC を使ってサーバにアクセスするだけ。
    PuTTY-CAC からは PKCS#11 ではなく、CAPI からアクセスすることになることに注意が必要です。

    PuTTY-CAC

    PuTTY-CAC is an open-source SSH client for Windows that supports smartcard authentication, particularly using the US Department of Defense Common Access Card (DoD CAC) as a PKI token.

      at 09:29 |
      2015/11/10

      PuTTY 0.54 ~ 0.65 に脆弱性(CVE-2015-5309)

      PuTTY 

      Windows 用の SSH ターミナルである PuTTY に脆弱性が見つかったようです。
      対策は 0.66 へのアップデートなので、インストールしている場合にはアップデートしておきましょう。

      PuTTY vulnerability vuln-ech-overflow - セキュリティホール memo

      PuTTY 0.54 〜 0.65 に欠陥。 端末エミュレーターにおける ECH (ERASE CHARACTER) 制御シーケンスの処理において、潜在的な、メモリ破壊を伴う integer overflow が存在。 PuTTY, PuTTYtel, pterm に影響する。CVE-2015-5309 PuTTY 0.66 で修正されている。

        at 21:33 |
        2015/03/02

        PuTTY 0.64 登場

        PuTTY 

        Windows でよく使われている SSH 実装 PuTTY の 0.64 がリリースされました。0.63 (released 2013-08-06) からほぼ1年半ぶりのアップデートということになります。2つのセキュリティ修正を含むので、きちんとアップデートしておいた方が良さそうです。

        日本語向けのパッチがあたったバージョンも追随して新しいバージョンがリリースされています。

        Changelog にはありませんが、iceiv+putty からダウンロードして試してみたところ、このバージョンから先日発見した ECDSA 対応*1が盛り込まれているようです。
        ECDSA 対応は 0.64 の正式リリースには含まれていないとのことです。(コメント参照)

        [PuTTY 0.64 登場 の続きを読む]

        at 23:56 |
        2015/02/10

        PuTTY が ECDSA に対応してた

        PuTTY  ssh 
        PuTTYgen ECDSA - PuTTY が ECDSA に対応してた

        TeraTerm では2011年のバージョン 4.69 からサポートされていた ECDSA*1 ですが、PuTTY の Pageant が対応していなかったので「エージェントがないと今ひとつ導入に踏み切れないなぁ」とずっとそのままになっていたのですが、何気なく development snapshot (開発版)をダウンロードしてみたら ECDSA のサポートが追加されていることに気づきました。

        試しに使ってみましたが、 Pageant は問題なく Tera Term とも連携できるようで、すんなり ECDSA キーで Linux にログインできました。しばらく待つと安定版にも降りてくると思われます。


        at 22:01 |
        2014/05/17

        もうひとつの PuTTY の移行方法

        PuTTY  migration 

        以前、Puttyの設定のエクスポートするというエントリで、レジストリから Putty の設定を取り出して他のマシンに移植するという作業を紹介しました。やはりレジストリを毎回いじるのは面倒ということで、今回のマシン移行ではレジストリではなく、設定を ini ファイルに移行してしまうことにしました。

        実は国内でよく使われている PuTTY ごった煮版 やその派生版には、設定を ini に持つようにするというパッチがマージされています。このパッチは PuTTY.exe と同じディレクトリに putty.ini というファイルを置くと、レジストリの代わりにこの ini ファイルに設定内容が記録されるようになるというものみたいです。ごった煮版にはひな形用の putty_sample.ini が同梱されているので、これのファイル名をリネームすればいいだけになっています。

        問題はレジストリのデータをどうやってこの ini ファイルの形式に変換するかですが、実はこのあたりを自動的にやってくれる reg2ini.pl というスクリプトが公開されていました。

        ただ、この方法には一つ落とし穴があります。reg2ini.pl は UTF-8 の入力を期待しているようなおですが、 XP からの移行だと regedit の出力の文字コードが UTF-16 になっているということ。このあたりは自分でエディタを使うなり iconv を使うなりして、あらかじめ文字コード変換を行なっておく必要があります。


          at 23:31 |
          2013/10/08

          ショートカットを使って PuTTY で目的のサーバに一撃で接続する

          PuTTY 

          PuTTY を使っていて、いちいち Saved Sessions からサーバを選択するのが面倒なので、目的のサーバに一撃で接続するショートカットが作れないかと思って調べてみたら思いのほか簡単だったのでやり方をメモ。おそらく同じことを考えた人が昔から沢山いるのか、FAQにそのものズバリのやり方が書いてありました

          PuTTY FAQ

          A.6.4 How can I create a Windows shortcut to start a particular saved session directly?
          To run a PuTTY session saved under the name ‘mysession’, create a Windows shortcut that invokes PuTTY with a command line like
          \path\name\to\putty.exe -load "mysession"

          以下、手順メモ。

          [ショートカットを使って PuTTY で目的のサーバに一撃で接続する の続きを読む]

            at 22:12 |
            2011/09/30

            Putty で 多段 ssh

            PuTTY  networking  ssh 

            sshは続くよどこまでもの応用編で Putty を使って ProxyCommand 相当のことをやる方法をいつも忘れるのでメモ。
            ちなみに、これと「SSHをSOCKS Proxyにする」を組み合わせると、多段sshした先のホストを Proxy にして任意のプロトコルを通すことができるようになります。

            Putty で nc を使った多段ssh - methaneの日記

            次に、到達したいサーバーのセッションを作る。設定画面の connection/Proxy を開く。Proxy Type は local に、真ん中らへんの設定はすっ飛ばし、一番下の Telnet command, or local proxy command の部分に、
            plink 踏み台サーバーのセッション名 "nc -w 10 %host %port"
            と書く。これで、sshのProxyCommand相当のことがputtyでできる。

              at 18:38 |
              2011/07/19

              PuTTY が4年ぶりにバージョンアップ

              PuTTY  ssh 

              しばらく更新が止まっていたWindowsのSSHアプリである PuTTY が約4年ぶりにバージョンアップしていたのでメモ。

              PuTTY version 0.61 is released

              PuTTY version 0.61 is released
              ------------------------------

              All the pre-built binaries, and the source code, are now availablefrom the PuTTY website at
               http://www.chiark.greenend.org.uk/~sgtatham/putty/
              It's been more than four years since 0.60 was released, and we've had quite a lot of email asking if PuTTY was still under development, and occasionally asking if we were even still alive. Well, we are, and it has been! Sorry about the long wait.

              OpenSSHは定期的にリリースがあるものの、PuTTYには動きが全くなかったので上記のリリース文にあるように僕も開発が止まっているのだと思っていました。今回のバージョンアップはWindows 7対応や秘密鍵のAES暗号化あたりが目新しいところでしょうか。普段使っている「PuTTY ごった煮版」にはまだ動きはないみたいなので、こちらの対応待ちという感じでしょうかね。


                at 22:40 |
                «Prev || 1 · 2 · | Next»
                » ArchiveList (Tag for "PuTTY" )