まだタイトルはありません。

まだタイトルはないのです。

PINE64をNEMのNISにする!/PINE64にArch LinuxをインストールしSSH接続をする編

PINE64をNEMのNISにするまでの工程を記録したものです。
1. PINE64にArch LinuxをインストールしSSH接続をする。
2. PINE64にNISをインストール
の二部構成になると思われる。

PINE64にArch Linuxをインストール

基本的にはPINE64のWikiにしたがいます。

環境

1. ArchをmicroSDに書き込む

  • fdiskコマンドで書き込み先SDカードを探す。
  • ArchのimageファイルをWiki からダウンロードしddコマンドでmicroSDカードに書き込む。
$ sudo fdisk -l
$ sudo dd bs=4M if=/path/to/archlinux-20160501-longsleep-pine64-8GB.img of=/dev/yourDevice! && sync

microSDの容量を最大限利用できていなかったため、PINE 64でArch Linux +パーティション拡張の記事を参考にパーティションを拡張した。
microSDをPINE64に差し込み電源を入れる。電源ケーブルを差すだけ。ついでにEthernetも差し込んでおく。

2. SSH接続をする

2-1. SSH接続 

rootでログインした。 “@”のうしろは先程調べたローカルIPアドレス。 パスワードを求められるので初期パスワードrootを入力。

$ ssh root@192.168.X.X

3. PINE64を設定する

3–1. rootのパスワードを変更

新しいパスワードを設定する。
userを追加、newUserNameには任意のユーザー名を指定して追加する。パスワードも設定する。
alarmをwheelから外す。 詳しくはArch Wiki/ユーザーとグループを参照。

# passwd root
# useradd -m -G wheel newUserName
# passwd newUserName
# gpasswd -d alarm wheel

3-2. pacmanのupdate

ArchWiki/pacmanを参考に…
pacmanからインストールするときにはまずアップデートしなさいとWikiに言われました。

# pacman -Syu

3-2. sudoのインストールと設定

sudoをインストールし、wheelグループのユーザーに権限を与える。 sudoの設定方法にしたがって行った。

# pacman -S sudo
# visudo

   # %wheel ALL=(ALL)ALL の#を削除する。

4. サーバー側SSH接続設定

4–1. 公開鍵方式で接続

サーバーとクライントどちらで操作しているかに注意! 「Raspberry Piに公開鍵認証を使ってssh接続する」を参考にさせていただいた。

サーバー(Arch: PINE64)側の準備
$ mkdir .ssh (userのしたに.sshディレクトリがない場合は作成)
$ touch authorized_keys ("key"ではなく"keys")

クライアント(Ubuntu)側で鍵を作成(私はすでにed25519鍵を作成してあったのでそれを利用)  
$ ssh-keygen

それをサーバー側に送る
$ scp .ssh/id_ed25519.pub username@192.168.X.X:

サーバー側で送られた鍵をauthorized_keysファイルに書き込む
$cat ~/id_ed25519.pub >> .ssh/authorized_keys

ディレクトリやファイルのパーミッションを確認
$ chmod 700 .ssh
$ chmod 600 .ssh/authorized_keys


サーバー側で /etc/ssh/sshd_configファイルを編集
$ sudo vi /etc/ssh/sshd_config
#PubkeyAuthentication yes の#を消してコメントアウト

正しく接続できるか確認。
$ ssh username@192.168.X.X 

うまくいけばこの後の設定変更をすすめる。私はだいぶハマりました。
authorized_keysファイルをrootで作ってしまっていたようで…アクセスできなかったもよう。たぶん…。
うまくいかないときは権限に問題があるときが多いそうです。

4–2. パスワードログインの禁止

sshd_configファイルを編集するのですがそのまえにバックアップをとっておくという記事を後から発見。やってないので書きませんが…。

$ sudo vi /etc/ssh/sshd_config 

#PasswordAuthentication no をコメントアウトしパスワードログインを禁止。 ランダムにパスワード突っ込んで入るのを防ぐため、だと思う。

4–3. SSHポートの変更

つづけて #Port22 をコメントアウトし、どこか開いているポートを指定。
例えばPort12345

4–4. rootでのssh接続の禁止

さらに #PermitRootLogin ~を コメントアウトし PermitRootLogin no にした。
最後にsshdを再起動!忘れずに。

$ systemctl start sshd.service

7. クライアント側SSH接続設定

7–1. .ssh/configを編集

$ vi .ssh/config (configがない場合は作っておく)

/configに以下を書き込む

Host hostName(任意の名前, 接続時に仕様する)
    HostName 192.168.X.X
    User username
    Port 先ほど指定したport番号
    IdentityFile ~/.ssh/id_ed25519

7–2. SSH接続

上の設定により以下で接続できる。

$ ssh hostName

で接続できればうまくいっているはず。

NISを入れるの次の記事に続く…。

にしてもMediumは使いづらい。なにか書くのが心地よいものを使いたいところである。 ということではてなにした。書くのが心地よいわけではないが、書くのはworkflowyが便利、markdown対応だし。