ハード的な準備が整ったので、OSや設定などのソフト面の設定を始めます。
設定の仕方は調べればたくさん出てきますが、そのままだとうまく行きませんでした。
色んなサイトの解説を組み合わせた方法を、備忘録もかねて掲載します。
目次
SSDのフォーマット
WindowsでSSDを認識できなければ、フォーマットが必要です。
スタートメニューを右クリックし、「ディスクの管理」から使いたいドライブをフォーマットします。
Raspbian liteのインストールと下準備
Raspbian liteののダウンロード
今回はサーバー用に使う予定なので、余計なGUI環境がはいっていない”Raspbian lite”を使います。
1.8Gぐらいあってだいぶ大きいのでDLに時間がかかります、気長に待ちましょう。
imageファイルをSSD(USBメモリ)書き込む
今回はmicro-sdではなく、USB接続できるSSDを使います。
【balenaEtcher】というフリーソフトがあるのでそれを使います。
WindowsでもMacでもLinuxでも使えるようです。
先ほどダウンロードしたRasbian Lite を選び、USB接続したSSDを選択。書き込みを行います。
SSH接続を許可する。
SSHとは
今回はサーバー用途で組み立てたいので、「ヘッドレス運用」してみたいと思います。
ヘッドレスとは、入出力装置をつけないことです。
ディスプレイやキーボード、マウスなどをつけずに運用します。
しかし本当に入出力装置 がないと、何もできませんので、
「SSH」というものを使って、別のPCからログインやコマンド操作をできるようにします。
SSH接続を許可する。
書き込みが終了したら、 Rasbian Liteを入れたドライブを開きます。
その中に新しいテキストファイルの作り、「ssh」という名前にします。
.txtの拡張子をつけないように注意してください。
これでほかのPCからコマンド操作できるようになります。
SSHでラズパイに接続
WindowsでPowerShellを管理者モードで起動します。
ラズパイを起動させる前に、arp -aコマンドで、ローカルネットワークの一覧を表示します。
確認できたら、ラズパイの電源をいれ、1分ほど放置。ふたたび arp -aで一覧を確認します。
arp -a
新しく増えました。これがラズパイのアドレスです。
“ssh pi@{物理アドレス}”でアクセスします。
ssh pi@{物理アドレス}
“pi”というのは、ラズパイのデフォルトのユーザー名です。(後で変えます。)
初回アクセスで許可を求められるので、”yes”と入力します。
その後ログインパスワードを求められます。ラズパイの初期パスワードは”raspberry”です。
“pi@raspberrypi: ~$”と出たら成功です。
ここまででうまくいかなかったら
そもそもIPアドレスが増えない。
ラズパイ本体とドライブがきちんと接続されているか。コンセントやLANケーブルはつながっているか。
(ケーブやケースについていれば)電源スイッチが入っているかを確認してください。
物理アドレスに見当がつくのであれば、”ping {物理アドレス}”で疎通確認できます。
また、電源を入れてから認識するまでタイムラグもありますのでしばらく待つのも手です(10分ほど)。
” connect to host {物理アドレス} port 22: connection refused “と出る場合。
ラズパイのフォルダに「ssh」を作成しているでしょうか。
「ssh.txt」だと接続できません。拡張子も含めてもう一度ご確認ください。
” WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!”と出る場合”
OSの再インストールをして最初からやり直そうとすると出ます。
“ssh-keygen -R {物理アドレス}” のコマンドを試してみてください。
アップデート他
以下のコマンドを実行して、ソフトをアップデートしちゃいましょう。
sudo apt-get update && sudo apt-get -y dist-upgrade && sudo apt-get -y autoremove && sudo apt-get autoclean
環境によりますが、5分~30分ほどかかります。
IPアドレスを固定
動的IPアドレスは、なんかの拍子に変わることがあるので固定させます。
固定するには、 “/etc/dhcpcd.conf”の内容を書き換えます。
“nano /etc/dhcpcd.conf”とうち、テキストエディタで開きます。
#/etc/dhcpcd.conf を、nanoで開く。 nano /etc/dhcpcd.conf
以下のテキストを末尾に追加します。
interface eth0
static ip_address={固定IPアドレス}/24
static routers={ルーターのIPアドレス}
static domain_name_servers={ルーターのDNS}
“固定IPアドレス”は、動的アドレスで使用されるアドレスの範囲外にする必要があります。
たとえば、192.xxx.xx.11~ 192.xxx.xx.255が動的振り分けされるのであれば、
192.xxx.xx.2~ 192.xxx.xx.10までの間で決めます。
192.xxx.xx.1は、ルーター自身のアドレスなので使えません。
static routersのところには ルーター自身のアドレス を記載します。
“ルーターのDNS”は、使っている機器やサービスによって異なるので調べる必要があります。
ルーターへログインし、DNSサーバーのアドレスを確認してください。
“sudo reboot”と入力し、再起動させ1分ほど待ちます。
“arp -a”で確認すると、先ほど固定したアドレスが増えています。
同じように”ssh pi@{物理アドレス}”でアクセスできれば成功です。
出てこないときはpingコマンドを打って疎通確認をすると一覧に表示されたりします。
ユーザー名とパスワードの変更
仮ユーザーを作成する。
まず、仮のユーザーを作ります。
すぐに消すので適当でよいです。今回はtmpにしました。
# tmpという仮ユーザーを作成する sudo useradd -M tmp # tmpユーザをsudoグループに追加 sudo gpasswd -a tmp # tmpユーザのパスワードを設定 sudo passwd tmp
このあとpiの変更を行いたいのですが、piはオートログインで使われているので、変更や削除が行えません。
なのでオートログインを解除します。
#/etc/lightdm/lightdm.confをnanoで開く sudo nano /etc/lightdm/lightdm.conf
以下のように変更してください
【前】autologin-user=pi
【後】#autologin-user=pi
autologin@.serviceも変更します。
#/etc/systemd/system/autologin@.service をnanoで開く sudo nano /etc/systemd/system/autologin@.service
以下のように変更
【前】ExecStart=-/sbin/agetty --autologin pi --noclear %I $TERM
【後】ExecStart=-/sbin/agetty --autologin tmp --noclear %I $TERM
その後、sudo reboot で再起動し、 tmpユーザーでログインしなおします。
piユーザーの名前やパスの変更
piユーザを別の名前に変更させます。
以下、「newusr」に変更する前提で書いています。お好きなユーザー名に読み替えてください。
# usermod ユーザ名をnewusrに変更 sudo usermod -l newusr pi # usermod ホームディレクトリを/home/piから/home/newusrに変更 sudo usermod -d /home/newusr -m newusr # groupmod -nでpiグループをnewusrグループに変更 sudo groupmod -n newusr pi
オートログインユーザーをnewusrに戻します。
# /etc/lightdm/lightdm.conf をnanoで開く sudo nano /etc/lightdm/lightdm.conf
【前】#autologin-user=pi
【後】autologin-user=newusr
# /etc/systemd/system/autologin@.service をnanoで開く sudo nano /etc/systemd/system/autologin@.service
【前】ExecStart=-/sbin/agetty --autologin tmp --noclear %I $TERM
【後】ExecStart=-/sbin/agetty --autologin newusr --noclear %I $TERM
rebootしてmewusrでログインします。パスワードはまだraspberryです。
仮ユーザーの削除と、パスワード変更
もう仮ユーザーは不要なので削除します。
# 仮ユーザを削除(警告的なのが出るかと思いますが、構わず削除して下さい) sudo userdel tmp # newpiユーザのパスワードを変更 sudo passwd newusr
raspi-config
“sudo raspi-config “でラズパイの設定が行えます。
矢印キーで移動。Enterで決定できます。
必要に応じて設定を行います。
今回設定したのは以下の3項目です。
Localisation Options->Change Locale -> ja_JP.UTF-8
言語とか文字コードの設定です。たぶん。
Localisation Options->Change Timezone -> Asia ->Tokyo
使用するタイムゾーンです。
Advanced Options ->Memory Split -> 16
GPU(簡単にいうと、画面表示などを行うデバイス)に割り当てるメモリを設定します。
今回はCUI画面しか使わないので最低値の16にしました。
以上で初期設定は終了。
必要になったらほかの項目も設定してチューニングしていきます。
SSHのポート番号を変更する。
デフォルトでSSHを使う場合はポート番号22を使います。
このポートは狙われやすいためポート番号を変更します。
sudo nano /etc/ssh/sshd_config
以下のように変更します。(数字を忘れないように)
【前】#Port 22
【後】Port {任意の数字}
SSHを再起動し、ログアウトします。
#SSHを再起動し sudo service ssh restart #ログアウト exit
これで、”ssh {user名}@{IPアドレス}”ではログインできなくなります。
ログインするには、後ろに” -p {ポート番号}”をつける必要があります。
#ポート番号を指定してログイン ssh newusr@{IPアドレス} -p {ポート番号}