たねやつの木

Photos and Programming

Raspberry PiにSSH接続して最初にやることまとめ

個人メモ用にRaspberry PiにSSH接続してからやることをまとめておきます。SSH接続するまでは以下の記事にまとめています。

流れ

useradd

まずはpiでログインする。このユーザーは新しくsudoグループに所属しているユーザーを追加するまで使用する。

任意のユーザー名でユーザーを作成する。デフォルトで追加されているpiユーザーはセキュリティ強化のために後程削除する。

$ sudo useradd taneyats

途中にユーザーに関する情報(名前など)を登録するプロンプトが出てくるがエンター連打で問題ない。

この辺は直接Raspberry Piに接続して設定しているときにやっておいてもいいかもしれない。

usermod -aG

先ほど追加したユーザーをメインで使用するために、piの所属しているグループをそのまま使用する。groups ([username])コマンドで現在のユーザーの所属するグループ(usernameを指定した場合はそのユーザーの所属するグループ)を表示することができる。

(piでログイン)
$ groups
pi adm dialout cdrom sudo audio video plugdev games users input netdev gpio i2c spi

-Gオプションでグループを変更することができる。この時-aオプションを指定しないと変更前に所属しているグループから外されてしまうのでユーザーにグループを追加するときには-aGを使用する。

書式はusermod -aG group1,group2,.... usernameで複数のグループを追加できる。

$ sudo usermod adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,gpio,i2c,spi taneyats
$ groups taneyats
taneyats adm dialout cdrom sudo audio video plugdev games users input netdev gpio i2c spi

sudoグループを追加することによってsudoコマンドを実行することができるようになる。権限を必要としない場合にはこのグループは外しておく。

passwd root

rootユーザーのパスワードを設定する。

$ sudo passwd root

userdel pi

先ほど追加したユーザーでsudoコマンドが実行できることを確認してからpiを削除する。sudoできるかどうかの確認もかねて一旦ターミナルの接続を切って、先ほど追加したユーザーでログインしなおす。削除対象のユーザーのプロセスが残っていると削除できない(ターミナルでpiにログインしたままではpiは削除できない)ので注意。

$ exit
...
> ターミナルで追加したユーザーでログイン実行
$ whoami
taneyats
$ sudo userdel pi
[sudo] password for taneyats:
$ su - pi
No passwd entry for user 'pi'

これでユーザー関係の初期設定は完了。

apt-get update / upgrade

各パッケージのアップデートを行う。

$ sudo apt-get update
...
$ sudo apt-get -y upgrade

たまに大きな変更があった場合のnoticeや設定を選択するためのプロンプトで止まっていることがあるのでたまにチェックする。

apt-get install

とりあえずvim git screen vsftpdぐらいは入れておく。

$ sudo apt-get install vim git screen vsftpd

デフォルトのエディタをvimに変更する

Linux側から開かれるデフォルトのエディタを変更する。sudo visudoやgitのコミット時にコメントが未設定の時に表示される。update-alternativesコマンドを使用する。初期セットアップ時以外にほぼほぼ使用することがないので結構構文を忘れる。。。どんなコマンドでも使い方を何となく忘れてしまったときには-h--helpオプションを指定して確認しよう。

$ sudo update-alternatives --config editor
There are 4 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /bin/nano            40        auto mode
  1            /bin/ed             -100       manual mode
  2            /bin/nano            40        manual mode
  3            /usr/bin/vim.basic   30        manual mode
  4            /usr/bin/vim.tiny    15        manual mode

Press <enter> to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in manual mode

バックスペース時のベル音を消す

ターミナルで接続しているときにこれ以上消す文字が無いときにバックスペースを押すと、ビープ音が鳴るのが個人的には結構鬱陶しいので消す。/etc/inputrc内の10行目あたりにset bell-style noneという設定がコメントアウトされているので#を消して有効化する。次回ログイン時から有効になる。

ここで設定してもlessvim内では有効になっているのでそれも各自設定してあげる必要がある。これに関しては別記事でまとめてある。

Node.js

外部からスクリプトを取得してきてそれを使用してインストールする。aptで管理されているものではバージョンが古いので注意。自分はサーバーサイドの処理を可能な限りNode.jsで書くようにしています。

以下のドキュメントを参考。

Raspberry Pi Zeroの場合はCPUのアーキテクチャがarmv6lというものなので上のスクリプトでは導入できない。

以下の記事に切り分けたのでそちらを参照。

導入が完了したらとりあえずforeverあたりを入れておく。