«

""


[GitHub Pages] カスタムドメインのDNS情報を更新する

去年、2019年の4月くらいから
GitHub Pages にファイルをアップすると、ワーニングが出るようになった

内容はこんなやつ

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
Title: [h-sao/h-sao.com] Page build warning

The page build completed successfully, but returned the following warning for the `gh-pages` branch:

The custom domain for your GitHub Pages site is pointed at an outdated IP address. You must update your site's DNS records if you'd like it to be available via your custom domain. For more information, see https://help.github.com/en/github/working-with-github-pages/configuring-a-custom-domain-for-your-github-pages-site.

For information on troubleshooting Jekyll see:

  https://help.github.com/articles/troubleshooting-jekyll-builds

If you have any questions you can contact us by replying to this email.

(* ̄- ̄)ふ~ん、よくわからんけど
何やらDNSの設定を変えないといけないのね

めんどくさー
後で後で…と思い続けて早10か月ほど…

さすがに対応しないと、自分のブログがアクセスできなくなるかもと焦り、重い腰を上げました

(前提条件)このブログの運用情報

カスタムドメインを GitHub Pages に割り当てる方法

調べてみると全然難しくなくて
上記のワーニングメールに書かれてたURLにアクセスしたら、全てが書かれてました

ただわたしにとっては真剣に読む気で読まないと頭の中スルー…って感じの内容だったので、ちょっと真剣に読んでみました

英語版はこれ↓↓↓なのですけど

https://help.github.com/en/github/working-with-github-pages/managing-a-custom-domain-for-your-github-pages-site

ご丁寧に日本語版も提供されています

これを見ながらやってみます

まずわたしのGitHub Pagesの設定画面は、こんな感じで黄色いワーニングが出てました

今までずーっと無視してきましたが、いよいよ解決する日が来ましたよ

わたしが割り当てているカスタムドメインは Apex ドメイン になっています
( www.h-sao.com ではなく、 h-sao.com としてアクセス)

日本語版の「カスタムドメインとGitHub Pagesについて」の説明を読んでみると、
「GitHub Pages サイト用のカスタムドメインを管理する」を参照してください。 とあるので、素直にそのリンクに飛びます

ここにありました! Apexドメインを設定する方法が!
A レコードのIPアドレスが書いてありました

185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153

あと、最初の「カスタムドメインとGitHub Pagesについて」には、こんな記載もありました

サイトには、カスタムドメインの一方または両方を設定できます。 Apex ドメインを使用している場合でも、www サブドメインを使用することをおすすめします。

ふむふむ、www は付けるのを推奨してるのね、了解
cname も追加してみました

# 設定するAレコード
a @ 185.199.108.153
a @ 185.199.109.153
a @ 185.199.110.153
a @ 185.199.111.153

# サブドメインも設定しておく
cname www h-sao.github.io.

Valueドメインの設定画面

これを設定すると、わたしの場合はちょうど15分後に設定が反映されました

よかったー!


[GitHub] GitHubリポジトリを別アカウントに移動させる

旧 Github Micro Plan では、プライベートリポジトリは5つまでしか持てませんでしたが
最近は Presonal Plan に変更されて、リポジトリ制限数が無制限になりましたね

それを受けて、手元で持っている複数の Micro Plan アカウントを、一つのアカウントにまとめる作業を行いました

あるGithubのリポジトリを別アカウントに移管する、という意味になります

移動元個人アカウント(XXX)のリポジトリ(X-REPO)
   ↓
移動先個人アカウント(YYY)

ドキドキしたけど、結構すんなり出来たので、別にドキドキする必要なかった(^^;)

とはいえ、わたしの様な小心者が、他にもいらっしゃるかもしれないので
(あと、忘れた頃の未来の自分のため^^;)
手順を詳細に載せときます


GiuHub上での操作(移動元)

  1. 移動元(XXX)のアカウントで GitHub にログインします

  2. 移動元(XXX)のGitHubのリポジトリ(X-REPO)の Settings> Options に行きます

  3. 一番下に Denger Zone があるので、そこの Transfer をクリックして、移動させます
    (まだ、いきなりは移動しないよ)

  4. 移動元(XXX)のリポジトリ名(X-REPO)移動先のアカウント名(YYY) を入力します

    これで、リポジトリを移動させる準備が出来ました

  5. 移動元リポジトリ(X-REPO)は、移動先アカウント(YYY)の許可待ち状態になります

    この状態であれば、Abort transferを押して、まだ移管を取り消すことが出来ますね!

その後、移動先アカウント(YYY)にメールが届く

  1. こんなメールが移動先アカウント(YYY)に届きます
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
<タイトル>
[GitHub] Repository transfer from @XXX (XXX/X-REPO)

<内容> 
Hello YYY,

@XXX wants to transfer the XXX/X-REPO repository to YYY/X-REPO. To accept the transfer, visit this link:

    (★ここにリンクが記載されている)

If you don’t accept the transfer, it’ll expire in about a day.

Questions? Problems? Email support@github.com any time.

Thanks,
Your friends at GitHub

ここで★のリンクをクリックすると、突然の移動完了です
お気を付けください(^_^;)

というわけで、ドキドキしながら★をクリックします

すぐに、移動元アカウント(XXX)にメールが届く

  1. 移動元アカウント(XXX)の方に、通知メールが届きます
1
2
3
4
5
6
7
YYY added you to X-REPO

You can now push to this repository.

---
View it on GitHub:
https://github.com/YYY/X-REPO

これで、完全に移動が完了しました


結構すんなりすぎて、あっけない感じです

issue、Collaborators など、リポジトリに必要な情報がまるっと移動できるので、とても便利でした


[Git] Gitで利用するsshキーペアの作成、ssh接続、複数ID接続

しょっちゅう作っては、作り方を忘れ、また検索で調べる…ということをしているので、sshキーの生成&接続について、忘れないようにメモしておきます

GitサーバへSSHキーを使って接続したい

Gitサーバに接続するには、

この2種類の接続方法があるみたいです

Git接続用のクライアントアプリは、どっちで接続するか選択できるものもあるので
Sourcetreeなどを使っていると、あまり認識してない人もいるかもしれません

今回、こんなクライアント環境で試しました

これを試そうと思ったモチベーションは、push のたびに IDとパスワードを毎回聞かれるのがやだ、だからキーペアを利用して ssh アクセスにするんだー
というところから始まってます

GitHub のIDとパスワードをスキップして、セキュアアクセスするのだ!という方の参考になればと思います!

あと、番外編として、 非推奨ですが https アクセスでIDとパスワードを毎回聞かれないようにする方法も最後にメモしておきます

キーの生成方法 ssh-keygen

ここは普通に
公開鍵と秘密鍵を作ればいいだけなので、知ってる人に取ったら何をいまさら…になりますが、一応メモ

Gitがインストールされているなら ssh-keygen が使えますので、コマンドを打つだけ
(コマンドを打たなくても、Gitのクライアントアプリが勝手にやってくれる場合もあります)

GitBash などを起動します

コマンドはこちら

$ ssh-keygen -t rsa

基本的には、何か聞かれてもエンターで進めばOKです

デフォルトでは c:\Users\[ユーザ名]\.ssh\** 以下に秘密鍵(id_rsa)公開鍵(id_rsa.pub)**のキーペアが作成されます

Windowsだとキーの保存位置は c:\Users\[ユーザ名]\.ssh\ にしないといけません

わたしは、Github用のキーだと判るように、名前を github_rsa として作成しました
(既に別の用途で id_rsa を使っているからです、つまり複数アカウントを利用しています)

実行結果はこれ↓↓↓

(SHA256以下の箇所は、適当に x で書き換えています) haruka.sao@MyPC MINGW64 ~ $ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/haruka.sao/.ssh/id_rsa): /c/Users/haruka.sao/.ssh/github_rsa Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /c/Users/haruka.sao/.ssh/github_rsa. Your public key has been saved in /c/Users/haruka.sao/.ssh/github_rsa.pub. The key fingerprint is: SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx haruka.sao@MyPC The key's randomart image is: +---[RSA 2048]----+ | x | | x | | x | | x | | x | | x | | x | | x | | x | +----[SHA256]-----+ haruka.sao@MyPC MINGW64 ~ $

キーペアができたできた

SSHキーをGitHubに登録

c:\Users\[ユーザ名]\.ssh\ に保存された id_rsa.pub (わたしの場合はgithub_rsa.pub)を GitHubに登録します

自分のアカウントの Settings > SSH and GPG keys > New SSH key をクリックすると、先ほど作った公開鍵を登録することができます

先ほど作った id_rsa.pub 公開鍵を登録しましょう!
くれぐれも id_rsa の秘密鍵の方ではないので、お間違え無く!

id_rsa.pub の中身を見ればわかりますが、「ssh-rsa ……」 から始まっているファイルになります

登録すると、こんな感じの記載になります

最後に、自分の秘密鍵が c:\Users\[ユーザ名]\.ssh\ に設置されていることを再確認!

OpenSSH モード

GitExtensions で ssh 接続したい場合、
私的にはお勧めなのは、OpenSSHモードにすることです

※ PuTTYアクセスは、PuTTYの独自フォーマットのキーを登録するなどが必要ですので、わたしは利用をやめました

これで下準備はOK!

PCから ssh で接続テスト

Git bash で接続テストしてみましょう

さっきの Git bash で、リポジトリの下まで移動します
もしくは、GitExtensions から起動すると、初期ディレクトリはそのリポジトリの下になります

確認パターンは2パターンあります

(パターン1) id_rsa で登録している ssh キーを利用する場合

このコマンドで確認します

1
$ ssh -T git@github.com

id_rsa というファイル名を、ssh 接続では自動的に認識するようです

初回は、known_hosts に GitHub サーバを登録するよ?と聞いてくるので、 yes を入力します

Hi [GitHubユーザ名]! You’ve successfully authenticated, but GitHub does not provide shell access.

が表示されればOKです

わたしの実行結果はこちら↓↓↓

$ ssh -T git@github.com The authenticity of host 'github.com (192.30.252.122)' can't be established. RSA key fingerprint is xx:xx:xx:xx:xx:xx: Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'github.com,192.30.252.122' (RSA) to the list of known hosts. Hi h-sao! You've successfully authenticated, but GitHub does not provide shell access.

known_hosts ファイルがこんな感じで作られました

(パターン2) 独自の名前で作った ssh キーを利用する場合

わたしの場合は、先ほど github_rsa という名前でキーを生成したので、こちらのパターンになりました

まず、 github_rsa という独自名称を ssh アクセス時に認識させる必要があります

c:\Users\[ユーザ名]\.ssh\ 直下に config という名前のファイルを作成します

※この部分は、Gitうんぬんは関係のない、ssh 接続の話です
 Windows の ssh 接続では c:\Users\[ユーザ名]\.ssh\config はすべてのSSH接続で共有されます

c:\Users\[ユーザ名]\.ssh\config の内容はこんな感じです

Host my.github.server HostName github.com Port 22 User h-sao IdentityFile ~/.ssh/github_rsa TCPKeepAlive yes IdentitiesOnly yes

<参考リンク>

ここまで準備したら、接続テストしましょう
config に設定した名前で Host の名称アクセスすることが出来ます!

1
$ ssh -T my.github.server

うまくいくと、パターン1と同じように、known hostに登録するかどうかを聞かれて、ファイルが作成されます

また、

Hi [GitHubユーザ名]! You’ve successfully authenticated, but GitHub does not provide shell access.

こんな感じで、自分のGitHub名でアクセス出来たことが判ります
いちおキャプチャ置いときます

これで、クライアントPCから GitHub に IDとパスワードを利用せずに接続することが出来ました!

まだGitExtensions から ssh アクセスは出来ない

さて、この状態で、GitExtensions のプッシュボタンを押して Pushしようとしても、IDとパスワードを聞かれます

Pushボタンを押すと…

GitHub のアカウントとパスワードを聞かれます…
どうやら https アクセスがデフォルトみたいです

ちゃんと自身の Git リポジトリに ssh 接続するんだよー

を認識させてあげないといけません

Git リポジトリに ssh 接続設定を教える

Git リポジトリの設定を Git bash のコマンドで見ることが出来ます

$ git config -l

これらの設定は、Git リポジトリ直下にある .\.git\ 以下にあります

この下の config ファイルなどを直接編集しても反映されますが、コマンドを使った方が良いでしょう

わたしの場合の実行結果はこちら

haruk@MACBOOKPROAKIKO ~/xxx (master) $ git config -l core.symlinks=false core.autocrlf=true color.diff=auto color.status=auto color.branch=auto color.interactive=true pack.packsizelimit=2g help.format=html http.sslcainfo=/bin/curl-ca-bundle.crt sendemail.smtpserver=/bin/msmtp.exe diff.astextplain.textconv=astextplain rebase.autosquash=true user.name=Sao Haruka user.email=xxx@yyy.tmp.com core.autocrlf=True core.excludesfile=C:\Users\haruk\Documents\gitignore_global.txt core.editor="C:/utils/GitExtensions/GitExtensions.exe" fileeditor merge.tool=kdiff3 diff.guitool=kdiff3 difftool.kdiff3.path=C:/utils/KDiff3/kdiff3.exe mergetool.kdiff3.path=C:/utils/KDiff3/kdiff3.exe core.repositoryformatversion=0 core.filemode=false core.bare=false core.logallrefupdates=true core.symlinks=false core.ignorecase=true core.hidedotfiles=dotGitOnly remote.origin.url=https://github.com/h-sao/xxx.git remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* branch.master.remote=origin branch.master.merge=refs/heads/master

上記の「remote.origin.url」が Git サーバにアクセスするときの URL になるので、これを ssh でアクセスするように変更します

デフォルトの id_rsa を利用するときは

git@github.com:[ユーザID]/[リポジトリ].git

を設定します

1
$ git remote set-url origin git@github.com:h-sao/xxx.git

id_rsa じゃない、別名の ssh キーファイルを利用するときの設定は

[Host名]:[ユーザID]/[リポジトリ].git

になります

1
$ git remote set-url origin my.github.server:h-sao/xxx.git

GitExtensions で Push してみましょう

URL の表記がちょっと変わりましたね
無事、IDとパスワードを聞かれることなく、プッシュが成功しているはずです\(^o^)/

やったー

<参考リンク>

(番外編) httpsアクセスでIDとパスワードを聞かれないようにする

ええ、今回、本当に色々と試しましたとも…

ssh ではなく https アクセスで、毎回アカウント情報を入力しない方法も調べました

あまりセキュアじゃないので、お勧めできませんが
一応記載しておきます

$ git config -l 

で調べた 「remote.origin.url」 の初期の記載はこれでした

remote.origin.url=https://github.com/h-sao/xxx.git

この https アクセスの URL 中に、IDとパスワードを埋め込めばOKです

https://[ユーザID]:[パスワード]github.com/h-sao/xxx.git

やってみたけど、パスワードが丸々画面に表示されるので、よくないです…
確かに、ssh キーファイルなど用意しなくてもいいので、便利ではありますが…><;

利用は自己責任でお願いします

<参考リンク>

追記記事書きました(2016/5/9)