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に書き込む
$ 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接続をする
- サーバ:Arch(PINE64)
- クライアント:Ubuntu
- デフォルト username: alarm, passwd: alarm
- デフォルト root user: root, passwd: root
PINE64のIPアドレスを調べ、IPアドレスを固定 LinuxのコマンドでUbuntuから調べられるはずですが、よくわからないのでFingというアプリを利用。
PingしてEthernetケーブルが光るので判別した笑
IPアドレスとMACアドレスをメモしておき、ルーターで固定するように設定する。
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対応だし。