ラック
Home > ブログ > 記事 > 2018年6月 > HexoでGithub Pagesにデプロイしてみる

HexoでGithub Pagesにデプロイしてみる

カテゴリ: ホームページ,開発環境,テンプレートエンジン

Hexoネタ続き。前記事ではローカルでHexoが動くことまで確認したので、次はGithub Pagesにデプロイしてみます。

まずはGithubにSSHでアクセスするように設定します。

Git bashで


$ mkdir ~/.ssh

$ cd ~/.ssh/

 ~/.ssh $ ssh-keygen -t rsa -C 'OWN-MAILADRESS@example.com'
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/USERNAME/.ssh/id_rsa): #空でエンター
Enter passphrase (empty for no passphrase): #パスフレーズ入力
Enter same passphrase again: #もう一度
Your identification has been saved in /c/Users/USERNAME/.ssh/id_rsa.
Your public key has been saved in /c/Users/USERNAME/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX OWN-MAILADRESS@example.com
The key's randomart image is:
## 略

$ clip < ~/.ssh/id_rsa.pub

C:\Users\USERNAME\.sshに拡張子なしのconfigファイルを作成。


Host github.com
  User git
  Hostname ssh.github.com
  Port 443
  IdentityFile "C:\Users\USERNAME\.ssh\id_rsa"

と記述し保存。続いて

  1. GitHub にログイン
  2. SSHキーの設定画面(SSH Keys)を開く
  3. [New SSH Key]ボタンを選択
    • Title: 任意 (例: homepc1)
    • Key: 先ほど生成した公開鍵(c:\Users\USERNAME\.ssh\id_rsa.pub) をテキストエディタで開きコピー&ペースト
  4. [Add SSH Key]ボタンを選択

これでGit bashに戻り


$ ssh -T git@github.com
Enter passphrase for key 'C:\Users\USERNAME\.ssh\id_rsa':
Hi USERNAME! You've successfully authenticated, but GitHub does not provide shell access.

OK、接続できました。しかし……


>hexo d -g
FATAL bad indentation of a mapping entry at line 83, column 3:
      repo: git@github.com:USERNAME/USERNAME ...
      ^
YAMLException: bad indentation of a mapping entry at line 83, column 3:
      repo: git@github.com:USERNAME/USERNAME ...
      ^
## 略

接続できません……。ここから長いトラブルシューティングが始まります。

まず調査してみたところ、パッケージが足りないらしいことが分かりました。hexoで作ったプロジェクトの下のpackage.jsonに追記します。


{
  "name": "hexo-site",
  "version": "0.0.0",
  "private": true,
  "hexo": {
    "version": "3.7.1"
  },
  "dependencies": {
    "hexo": "^3.2.0",
    "hexo-generator-archive": "^0.1.4",
    "hexo-generator-category": "^0.1.3",
    "hexo-generator-index": "^0.2.0",
    "hexo-generator-tag": "^0.2.0",
    "hexo-renderer-ejs": "^0.3.0",
    "hexo-renderer-stylus": "^0.3.1",
    "hexo-renderer-marked": "^0.3.0",
    "hexo-server": "^0.2.0",
    "hexo-deployer-git": "^0.3.1" //この1つを追加
  }
}

これでnpm i -Dしてからデプロイするも、症状変わらず。

……その後しばらくして、原因が判明しました。


# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
  type: github
   repo: git@github.com:USERNAME/USERNAME.github.io.git
   branch: master

半角スペースが1つずれていました……。yamlでこれは致命的。

再度hexo deploy -gしたところ、今度は異なるエラーになりました。


>hexo deploy -g
INFO  Start processing
INFO  Files loaded in 95 ms

## 略

ERROR Deployer not found: github

ググるとissueに「github」ではなく「git」と指定するとのこと。なので、プロジェクト下の_config.ymlを以下のように修正。


# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
  type: git #githubからgitに変更
  repo: git@github.com:USERNAME/USERNAME.github.io.git
  branch: master

再度デプロイ。


>hexo deploy -g
INFO  Start processing
INFO  Files loaded in 95 ms

## 略

[master (root-commit) 3d93d85] First commit

## 略

Warning: Permanently added the RSA host key for IP address '[192.30.253.123]:443' to the list of known hosts.
git@ssh.github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
FATAL Something's wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html
Error: Warning: Permanently added the RSA host key for IP address '[192.30.253.123]:443' to the list of known hosts.
git@ssh.github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

## 後略

途中まで行っているような雰囲気でしたがダメでした。Error: Warning: Permanently added the RSA host key for IP addressで調べてみるとSSHの公開鍵の接続先の設定がおかしいらしいとのこと。C:\Users\USERNAME\.ssh\known_hosts[ssh.github.com]から始まる最初の行を削除し、再度デプロイ。


>hexo deploy -g
INFO  Start processing
INFO  Files loaded in 102 ms

## 略

Host key verification failed.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
FATAL Something's wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html
Error: Host key verification failed.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

## 後略

Error: Host key verification failed.で調べてみると、RSAキーがおかしいらしい?ここでふと気付いたこと。現在コマンドプロンプトから操作しているのですが、そもそもコマンドプロンプトでsshコマンドにパス通っていないのでは……?

ということで、Git bashを起動、プロジェクトディレクトリに移動して同じようにhexo deploy -gすると……上手く行きました。色々ありましたが、何とかデプロイまで到達できました。

HexoでGithub Pagesにデプロイした画面

途中theme: casperに変えてみたので、それでキチンとデプロイされたことが確認できました。

参考

GithubにSSHするように設定追加する手順

「ERROR Deployer not found: github」の対処

「Error: Warning: Permanently added the RSA host key for IP address ...」への対処、SSHのknown_hostsを変更

「Error: Host key verification failed.」の対処

タグ: 手順,Github,Node.js

 



関連する記事一覧