<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>認証 on えやみぐさ</title>
    <link>https://blog.aoirint.com/tags/%E8%AA%8D%E8%A8%BC/</link>
    <description>Recent content in 認証 on えやみぐさ</description>
    <generator>Hugo -- 0.164.0</generator>
    <language>ja</language>
    <lastBuildDate>Wed, 01 Nov 2023 23:45:00 +0900</lastBuildDate>
    <atom:link href="https://blog.aoirint.com/tags/%E8%AA%8D%E8%A8%BC/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Ubuntu 22.04, コマンドラインでパスワードをハッシュ化する（htpasswd bcrypt, doveadm SHA-512, openssl SHA-512）</title>
      <link>https://blog.aoirint.com/entry/2023/hash_password_on_command_line/</link>
      <pubDate>Wed, 01 Nov 2023 23:45:00 +0900</pubDate>
      <guid>https://blog.aoirint.com/entry/2023/hash_password_on_command_line/</guid>
      <description>&lt;h2 id=&#34;htpasswd--bcrypt&#34;&gt;htpasswd + bcrypt&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ sudo apt install apache2-utils
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ sudo apt list --installed apache2-utils
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;apache2-utils/jammy-updates,now 2.4.52-1ubuntu4.6 amd64 &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;installed&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ htpasswd -nB myuser
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;New password: password
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Re-type new password: password
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;myuser:$2y$05$aw7xqaxQ207POKX8bavQleo52mb1jxRT7WenwvXqW21FA4wnygHjq
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://unix.stackexchange.com/questions/307994/compute-bcrypt-hash-from-command-line&#34;&gt;password - Compute bcrypt hash from command line - Unix &amp;amp; Linux Stack Exchange&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;doveadm--sha-512&#34;&gt;doveadm + SHA-512&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ sudo apt install dovecot-core
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ sudo apt list --installed dovecot-core
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;dovecot-core/jammy-updates,now 1:2.3.16+dfsg1-3ubuntu2.2 amd64 &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;installed&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ doveadm pw -s SHA512-CRYPT
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Enter new password: password
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Retype new password: password
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt;SHA512-CRYPT&lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt;$6$jtT1Mdke./dCtWSp$5ptqP0pgduBjHiRHCfh0nrWstAI46Jmytf88VlrJgpMsBPSNVhFG1cdgxkHVAXLporwb0d9pcYskAfFPqdtEy1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://unix.stackexchange.com/questions/52108/how-to-create-sha512-password-hashes-on-command-line&#34;&gt;security - How to create SHA512 password hashes on command line - Unix &amp;amp; Linux Stack Exchange&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;openssl--sha-512&#34;&gt;openssl + SHA-512&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ sudo apt list --installed openssl
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;openssl/jammy-updates,jammy-security,now 3.0.2-0ubuntu1.12 amd64 &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;installed&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ openssl version
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OpenSSL 3.0.2 &lt;span style=&#34;color:#ae81ff&#34;&gt;15&lt;/span&gt; Mar &lt;span style=&#34;color:#ae81ff&#34;&gt;2022&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;Library: OpenSSL 3.0.2 &lt;span style=&#34;color:#ae81ff&#34;&gt;15&lt;/span&gt; Mar 2022&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ openssl passwd -6
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Password: password
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Verifying - Password: password
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$6$TmbOcErpIJRy.gWH$phJqAZzmdBj206D4kQEJNEq638KJyUwcnLbK61yBQeVsImjIg0SYXeClDjyMFCVCAvjqeNszhwtz1aUtTPKo70
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://unix.stackexchange.com/questions/52108/how-to-create-sha512-password-hashes-on-command-line&#34;&gt;security - How to create SHA512 password hashes on command line - Unix &amp;amp; Linux Stack Exchange&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://qiita.com/yumenomatayume/items/2c77ec52e7b2257f6800&#34;&gt;LinuxでSHA-512のパスワードハッシュ作成方法まとめ #Python - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>GitHubのPAT（Personal Access Token）認証手順（Ubuntu）</title>
      <link>https://blog.aoirint.com/entry/2020/github_pat_auth/</link>
      <pubDate>Fri, 18 Dec 2020 11:00:00 +0900</pubDate>
      <guid>https://blog.aoirint.com/entry/2020/github_pat_auth/</guid>
      <description>&lt;p&gt;GitHubがパスワードによるGitアクセスを無効化する（正確にはパーソナルアクセストークン認証を必須化する、だが現状SSH認証は残る）旨のアナウンスをした（&lt;a href=&#34;https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/&#34;&gt;Token authentication requirements for Git operations - The GitHub Blog&lt;/a&gt;）。&lt;/p&gt;
&lt;p&gt;これまで、コマンドラインGit操作のためのGitHubの認証にはパスワード認証（HTTPS Basic認証）を使っていた。
一応、リポジトリを操作するたびにパスワードを入力するのは面倒なので、
cacheは有効化していた。（&lt;code&gt;git config --global credential.helper cache&lt;/code&gt;）。&lt;/p&gt;
&lt;p&gt;パスワード認証は、持ち出せないPCやVPS、モバイル端末や新しいPCから一時的にリポジトリにアクセスする必要があるときに便利だった。
もちろん、キーロガーやgitコマンドなどシステムがハックされている可能性を考えると望ましくないことはわかっていたが..。
以前はSSH認証を使っていた時期もあったが、ブラウザ上での鍵の登録削除操作が必要でこういった一時的な認証には向かない（この記事ではこの問題は解決しない。都度PATを用意するか、平文保存するか、あるいは手元で認証情報を持つ必要のない自動デプロイを採用することになるかもしれない）。
また、同じGitホスティングサービスに複数アカウントを作っているとき、デバイス数×アカウント数と大量に鍵を管理する必要が出てくる（この記事ではこの問題も解決しない）。&lt;/p&gt;
&lt;p&gt;自分の認識として、GitHubのGit操作をする認証にはパスワード認証（HTTPS Basic認証）、SSH認証、パーソナルアクセストークンがある（GitHub ActionsのトークンやOAuthなどは除く）。&lt;/p&gt;
&lt;p&gt;SSH認証を使っていなかった理由は先に述べた問題（一時的なアクセス・大量の鍵管理）のほかに、プロキシがある。
自分の環境では、ネットワーク/場所が変わるたびにプロキシ設定を切り替える必要があり、
HTTPS認証の場合、毎回&lt;code&gt;git config --global http.proxy&lt;/code&gt;あるいは&lt;code&gt;git config --global --unset http.proxy&lt;/code&gt;を打つことになっている（あるいはシェルスクリプト。&lt;code&gt;global&lt;/code&gt;なのはリポジトリ別に設定を残さないためと&lt;code&gt;clone&lt;/code&gt;ができないから）。
ここでSSHを使うとHTTPプロキシ経由で通信するためのProxyCommandを設定することになるが、これがやっかいである。
まず、OSごとにプロキシコマンドが異なる。&lt;code&gt;connect -H&lt;/code&gt;（Windows）、&lt;code&gt;ncat --proxy-type http --proxy&lt;/code&gt;（macOS）、&lt;code&gt;nc -X connect -x&lt;/code&gt;（Linux）とそれぞれのOS用の設定を用意することになる。
また、プロキシのON/OFF自体については、ふつうに&lt;code&gt;ssh&lt;/code&gt;でつなぐときは、ワイルドカード設定を使って接続先名でプロキシを切り替えるようにしているのだが、
Gitの場合は接続先名を変えるために&lt;code&gt;git remote set-url&lt;/code&gt;する必要があり、これにはリポジトリのパスを記憶して頻繁に入力する必要が出てきてしまう。今のところそのような認識であるので、パーソナルアクセストークンを使った認証に切り替えていく。&lt;/p&gt;
&lt;p&gt;パーソナルアクセストークン（PAT）は、パスワードの代わりに利用可能な認証情報で、権限を絞ったトークンを生成できる。&lt;a href=&#34;https://docs.github.com/en/free-pro-team@latest/packages/learn-github-packages/about-github-packages&#34;&gt;GitHub Package Registry&lt;/a&gt;を利用するときに使っていて（&lt;code&gt;docker login docker.pkg.github.com&lt;/code&gt;。パスワード認証不可。現在GitHubのDockerレジストリはpull認証不要の&lt;a href=&#34;https://docs.github.com/en/free-pro-team@latest/packages/guides/about-github-container-registry&#34;&gt;GitHub Container Registry&lt;/a&gt; &lt;code&gt;ghcr.io&lt;/code&gt; に置き換えられる予定でパブリックベータ中）、好印象を持っていた（PyPIやDocker Hubでもトークン認証が便利）。また、GitHubはSSH認証よりも&lt;a href=&#34;https://docs.github.com/en/free-pro-team@latest/github/getting-started-with-github/set-up-git#next-steps-authenticating-with-github-from-git&#34;&gt;HTTPS認証を推奨している&lt;/a&gt;。PATの設定箇所は若干わかりにくいが、Settings &amp;gt; Developer settings &amp;gt; Personal access tokensから設定できる。&lt;/p&gt;
&lt;p&gt;主要機の切り替えにあたって、トークンを毎回入力するわけにはいかないので、入力されたパスワード（トークン）を認証情報マネージャを使って永続化する設定をする。Windows（Git for Windows）、macOSでは自動で設定されるように思うが、Ubuntuでは手動設定することになる。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;libgnome-keyring&lt;/code&gt;の&lt;code&gt;git-credential-gnome-keyring&lt;/code&gt;というのがあるが、&lt;code&gt;libgnome-keyring&lt;/code&gt;が非推奨になっている（&lt;a href=&#34;https://stackoverflow.com/a/40312117&#34;&gt;linux - Error when using Git credential helper with gnome-keyring as Sudo - Stack Overflow&lt;/a&gt;、&lt;a href=&#34;https://mail.gnome.org/archives/commits-list/2014-January/msg01585.html&#34;&gt;[libgnome-keyring] Deprecate libgnome-keyring. Use libsecret instead&lt;/a&gt;）ようなので&lt;code&gt;libsecret&lt;/code&gt;を使う（裏側では同じ&lt;code&gt;gnome-keyring&lt;/code&gt;が動いているようだが）。
どちらもほぼ手順は同じだが、開発用パッケージからソースコードを取得したあと、手動で&lt;code&gt;make&lt;/code&gt;するという謎手順がある（#パッケージマネージャとは）。これで一応保存時の暗号化（復元可能）は施された状態で永続化できる。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
