SSH
drobo
Dropbear

drobo5N2にDropbearをインスールし、sshの鍵認証設定を行う

はじめに

droboってDrobo Appsをいれていろいろなことができるんですが、
あんまり情報がなくて試行錯誤したのでまとめておこうと思います。

前提とする環境

Drobo DashboardをPCにインストール済みで、
Drobo上でDrobo Appsを使えるようになっている事を前提としています。

今回の例はDrobo5N2ですが、Drobo 5Nでも同じ手順でOKのはずです。

手順作成時の環境

ソフト バージョン
OS OSX El Capitan 10.11.6
ssh(クライアント側) OpenSSH_6.9p1, LibreSSL 2.1.8
Drobo Dashboard 3.1.4

インストール&設定手順

大まかな手順は次の通りです。

  1. Dropbearのインストール
  2. sshアクセス用ユーザの作成
  3. droboにsshで接続してみる
  4. ssh認証用の鍵を作成する
  5. ssh-copy-idでssh認証用の公開鍵をコピーする
  6. 登録した認証鍵を使ってログインする
  7. ローカルのssh configファイルに設定を追加しておく

1.Dropbearのインストール

Drobo Dashboardを使い、
Drobo Appsに用意されているDropbearをインストールします。
drobo_01.png

2.sshアクセス用ユーザの作成

droboにsshでアクセスする際のユーザIDとパスワードは、
droboの共有設定のユーザIDとパスワードが利用されます。

Drobo Dashboardで設定した管理者アカウントでもssh接続できますが、
今回はそれとは別にユーザアカウントを作成してみます。

Drobo Dashboardのメニューから「共有」を選択して、「設定を共有」ボタンを押す

drobo_02_1.png

設定を共有画面の「ユーザー」タブを選択して、「追加」ボタンを押す。

drobo_02_2.png

今回は「demouser」という名前のアカウントを作ります。

drobo_02_3.png

3.droboにsshで接続してみる

ユーザが作成できたので、sshでDroboに接続してみましょう。
接続先のホスト名が「drobo5n2.local」になっているのは、
droboがavahiでホスト名を自動設定するためです。

ローカルPC
ssh demouser@drobo5n2.local

demouser@drobo5n2.local's password:

ログインできたら、idコマンドでユーザ情報を確認します。

Drobo
Drobo5N2:~ $ id
uid=1002(demouser) gid=1002(demouser) groups=1002(demouser) context=system_u:system_r:kernel_t:s0

ユーザ情報が確認できたらexitで一旦ログアウトします。

Drobo
Drobo5N2:~ $ exit
Connection to drobo5n2.local closed.

4.ssh認証用の鍵を作成する

ローカルのPCでSSH認証用の鍵を作成します。

http://ssh-comparison.quendi.de/impls/dropbear.html
のHostkey formatsによると、Dropbearが使えるのは以下の鍵のようです。

  • ecdsa-sha2-nistp256
  • ecdsa-sha2-nistp384
  • ecdsa-sha2-nistp521
  • ssh-rsa
  • ssh-dss

今回はecdsaの521bitの鍵を作ってみましょう。

ローカルPC
ssh-keygen -t ecdsa -b 521

作成される鍵の保存先に問題なければ、そのままEnter、
パスフレーズはちゃんと設定しましょう。

ssh-keygen
Generating public/private ecdsa key pair.
Enter file in which to save the key (/Users/cnaos/.ssh/id_ecdsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

5.ssh-copy-idでSSH認証用の公開鍵をコピーする

あとは作成した公開鍵をdroboに転送して設定するだけなんですが、

  1. Droboにログインする
  2. .sshディレクトリを作成する
  3. .sshディレクトリのパーミッションを設定する
  4. .sshディレクトリ内にauthorized_keysがなかったらファイルを作成する
    1. authorized_keysのパーミッションを設定する
  5. .sshディレクトリのauthorized_keysに公開鍵を追加する

というふうに地味に面倒な手順が必要なので、
ssh-copy-idコマンドをつかって楽します。

-i オプションの引数に指定するのは公開鍵(.pub)の方です。

ローカルPC
ssh-copy-id -i .ssh/id_ecdsa.pub demouser@drobo5n2.local

/usr/local/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/local/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
demouser@drobo5n2.local's password:

Number of key(s) added:        1

Now try logging into the machine, with:   "ssh 'demouser@drobo5n2.local'"
and check to make sure that only the key(s) you wanted were added.

6.登録した認証鍵を使ってログインする

sshで接続する際につかう鍵ファイル(秘密鍵の方)を指定すると認証鍵で認証されます。
指定しないとパスワード認証になります。

ローカルPC
ssh -i .ssh/id_ecdsa demouser@drobo5n2.local

7.ローカルのssh configファイルに設定を追加しておく

ローカルPCのssh configファイルにユーザ名や認証につかう鍵ファイルを書いておきます。

Host drobo5n2.local
  User demouser
  Hostname drobo5n2.local
  IdentityFile ~/.ssh/id_ecdsa
  TCPKeepAlive yes
  IdentitiesOnly yes

これで以下のようにホスト名だけで作成したユーザでログインできます。

ローカルPC
ssh drobo5n2.local
Drobo5N2:~ $ id
uid=1002(demouser) gid=1002(demouser) groups=1002(demouser) context=system_u:system_r:kernel_t:s0
Drobo5N2:~ $