Dokku   公開鍵

ホーム   目次

Dokku は、デプロイツール (PaaS) として最もシンプルなものです。このコーナーでは、 Dokku で Haskell アプリケーションを、リモートサーバーへデプロイする方法を説明しています。


手順

Dokku でデプロイするまでの手順は次のとおりです。なおローカルの環境は、macOSかLinuxであることを想定しています。

  1. 公開鍵の作成と、GitHubへの登録
  2. リモートサーバーの設定
  3. Hakell アプリのデプロイ

公開鍵の作成

DokkuはGitHubを使います。そしてDokku にまつわるエラーで一番多いのが GitHubに登録した公開鍵の使い方のミスです。ここでは公開鍵を作成して、GitHubに登録する手順を説明します。

  1. ターミナルを起動して、ホームディレクトリに移動します。

  2. ターミナルに次のように入力して、.ssh ディレクトリがあるかどうかを確認します。
    ls-la
    ・・・
    drwx------ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx .ssh
    ・・・
    上記のように表示されれば、.sshディレクトリが存在していて、 パーミッションも合っています。

  3. .sshが存在していなければ、次のように入力して、.ssh ディレクトリを作成して、パーミッションを設定します。
    mkdir .ssh
    chmod 700 .ssh
    .sshがある場合でも、パーミッションが合っていなければ、 chmod 700 .sshでパーミッションを合わせてください。

  4. .sshディレクトリに移動してすでに公開鍵があるかどうかを確認します。
    cd .ssh
    ls -la
    -rw------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx id_rsa
    -rw-r--r-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx id_rsa.pub
    -rw-r--r-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx known_hosts
    各ファイルの説明

    1. id_rsaは、秘密鍵です。
    2. id_rsa.pubが、公開鍵です。authorized_keys という名前になっている場合もあります。
    3. known_hostsは、 リモートサーバーへのアクセス履歴が記載されるファイルです。 リモートサーバーへのアクセスに失敗する場合、 このファイルを削除すると直る場合が結構あります。

  5. 秘密鍵と公開鍵がない場合は次の方法で作成します。known_hostsは、 なくても構いません。
    ssh-keygen -t rsa
    保存先はどこにしますか?、パスフレーズ (パスワードのこと)は何にしますか、 と聞かれますが、全部エンターキーを叩いて無視して大丈夫です。

  6. 秘密鍵 id_rsa のパーミッションを次のように設定してください。
    chmod 600 id_rsa

  7. 公開鍵 id_rsa.pubvicat で開いてその内容をどこかにメモしてください。
    vi id_rsa.pub
    もしくは
    cat id_rsa.pub

Gitのインストールと、GitHubの登録

公開鍵をGitHubに登録する前に、まずGitをインストールします。私の場合は下記サイトよりインストーラーをダウンロードしてインストールしました。

Git - Downloads

Linuxの場合は、下記コマンドでインストールできます。

Debian / Ubuntu

sudo apt-get install git

Fedra

yum install gi
もしくは
dnf install git

次に下記サイトにアクセスして GitHubのアカウントを取得します。

The world’s leading software development platform · GitHub

アカウントが設定できましたら、上記サイトにアクセスして「サインイン」します。

右上のメニューより「Settings」(設定)を選択します。

左のグループから「SSH and GPS keys」(SSHとGPSキー)を選択します。

「New SSH Key」(新しいSSHキー)をクリックします。

「Title」(タイトル)に、任意の名前を記入します。

「Key」(キー)に、先ほどメモした、公開鍵の内容をペーストします。

「Add SSH key」(SSHキーを追加する)をクリックします。

右上のメニューから「Sign Out」(サインアウト)を選択します。

ターミナルに戻って、次のように操作します。

ssh -T git@github.com
Are you sure you want to continue connecting (yes/no)?

yes」と入力します。

Hi appdesignjp! You've successfully authenticated, but GitHub does not provide shell access.

上記のように表示されれば、公開鍵の登録は成功しています。

公開鍵のメモは、 リモートサーバーの設定の時にも使いますので、残しておいてください。

Tips

今後、 SSH 接続や、Dokku のデプロイに失敗する場合、.ssh ディレクトリの known_hosts ファイルを削除すると直る場合があります。


1806 visits
Posted: Feb. 04, 2019
Update: Feb. 05, 2019

ホーム   目次   ページトップ