<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>github on Xlog</title>
    <link>https://old.xlog.systems/tags/github/</link>
    <description>Recent content in github on Xlog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ja</language>
    <managingEditor>mail@buntin.xyz (Buntin Synthia)</managingEditor>
    <webMaster>mail@buntin.xyz (Buntin Synthia)</webMaster>
    <lastBuildDate>Fri, 01 Mar 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://old.xlog.systems/tags/github/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>GithubでGPG署名を設定する</title>
      <link>https://old.xlog.systems/posts/github-gpg-signing/</link>
      <pubDate>Fri, 01 Mar 2024 00:00:00 +0000</pubDate>
      <author>mail@buntin.xyz (Buntin Synthia)</author>
      <guid>https://old.xlog.systems/posts/github-gpg-signing/</guid>
      <description>&lt;h2 id=&#34;クライアントuser側の設定&#34;&gt;クライアント(User)側の設定&lt;/h2&gt;
&lt;h3 id=&#34;gpg-鍵を作成&#34;&gt;GPG 鍵を作成&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gpg --full-generate-key
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;このとき、メールは Github に登録済みのメールを使用してください。&lt;/p&gt;
&lt;h3 id=&#34;gpg-鍵の-id-を取得&#34;&gt;GPG 鍵の ID を取得&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pub   rsa3072/OOOOOOOOOOOOOO 2024-03-01 [SC]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      XXXXXXXXXXXXXXXXXXXXXXXXOOOOOOOOOOOOOO
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uid                 [  究極  ] Buntin Synthia (github) &amp;lt;mail@buntin.xyz&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sub   rsa3072/TTTTTTTT 2024-03-01 [E]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;この場合、ID は&lt;code&gt;OOOOOOOOOOOOOO&lt;/code&gt;になります。&lt;/p&gt;
&lt;p&gt;以下でも取得できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gpg --list-keys --keyid-format LONG &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep pub &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; awk &lt;span class=&#34;s1&#34;&gt;&amp;#39;{print $2}&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; cut -d&lt;span class=&#34;s1&#34;&gt;&amp;#39;/&amp;#39;&lt;/span&gt; -f2&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;gpg-公開鍵の出力&#34;&gt;GPG 公開鍵の出力&lt;/h3&gt;
&lt;p&gt;ID がわかったら、以下のコマンドを実際の ID に差し替えて実行してください。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gpg --armor --export OOOOOOOOOOOOOO
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;以下の様な感じのが出てくるかと思います。それを後々 Github に登録するので ID と一緒に取っといてください。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;-----BEGIN PGP PUBLIC KEY BLOCK-----

???
...
???
-----END PGP PUBLIC KEY BLOCK-----
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;pinentry-の設定&#34;&gt;pinentry の設定&lt;/h3&gt;
&lt;p&gt;正確な定義はわかりませんが、コミット時署名のためのパスワードを打つための専用の TUI ソフトウェア的なやつです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew install pinentry-mac&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;        &lt;span class=&#34;c1&#34;&gt;# Darwin&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install pinentry-gtk2&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;   &lt;span class=&#34;c1&#34;&gt;# Debian系 GUI&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install pinentry-curses&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# Debian系 CUI&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo dnf install pinentry&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;        &lt;span class=&#34;c1&#34;&gt;# RHEL系(EPEL必要かも)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;git-の設定&#34;&gt;Git の設定&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git config --global user.signingkey OOOOOOOOOOOOOO &lt;span class=&#34;c1&#34;&gt;# GPG鍵のID&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git config --global commit.gpgsign &lt;span class=&#34;nb&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git config --global gpg.program gpg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;環境変数-gpg_tty-の設定&#34;&gt;環境変数 GPG_TTY の設定&lt;/h3&gt;
&lt;p&gt;.zshrc,.bashrc に、１行追加するだけです。&lt;/p&gt;
&lt;p&gt;出力先の指定、的なことを行なっています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;GPG_TTY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;tty&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;クライアント側終わり&#34;&gt;クライアント側終わり&lt;/h3&gt;
&lt;p&gt;git に ssh できる環境を作っておきましょう。これやっててできないことはないと思いますが。&lt;/p&gt;
&lt;h2 id=&#34;github-側の設定&#34;&gt;Github 側の設定&lt;/h2&gt;
&lt;h3 id=&#34;github-に鍵を追加する&#34;&gt;Github に鍵を追加する。&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;設定 -&amp;gt; SSH and GPG keys -&amp;gt; New GPG keys&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;から追加可能。ID と公開鍵を入力する。&lt;/p&gt;
&lt;h2 id=&#34;完了&#34;&gt;完了!&lt;/h2&gt;
&lt;p&gt;これで、コミット時に GPG 署名ができるようになります。&lt;/p&gt;
&lt;img src=&#34;https://res.cloudinary.com/xlog/image/upload/v1/2024/03/01/github-gpg-signing-result?_a=BAMHUyJt0&#34; alt=&#34;Cloudinary image&lt;github-gpg-signing-result.png-2024/03/01/github-gpg-signing-result&gt;&#34; /&gt;
</description>
    </item>
    
  </channel>
</rss>
