それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

タイムゾーン(時刻)を設定する(dpkg-reconfigureの対話ダイアログなし)

タイムゾーン設定がめんどくさい。

ロケールタイムゾーンを設定をちまちま手作業でやるのがめんどくさい。

タイムゾーン設定(有人)

dpkg-reconfigure locales # ja_JP.UTF-8

タイムゾーン設定(無人

timedatectl set-timezone Asia/Tokyo

時刻設定のダイアログは

なれないうちは、勉強を兼ねて手順を意識してたほうがいいけど、なれると、もう手順を飛ばしたいよね。タイムゾーン設定・ロケール・初期ユーザーなど。 docker だとカスタムイメージをdockerfile でつくるし、LXC なら config でできる。楽しないとね

ロケール(地域言語)を設定する(dpkg-reconfigureの対話ダイアログなし)

言語・地域のロケール設定がめんどくさい。

LXCで新規インスタンスを起動したり、dockerfile や インストールスクリプトを書いていると、ロケール設定がめんどくさい。手作業でやっていると、dpkg-reconfigure を使えばいいんですけど、不便。起動までコピペでやろうとすると、dpkgでストップしちゃって離席放置ができない。

地域・言語の設定をする方法

ロケール設定を、対話ダイアログでやる場合は、次のようになるが、

dpkg-reconfigure locales # ja_JP.UTF-8

無人で、自動でワンライナーで設定しようとすると次のようになる。

update-locale LANG=ja_JP.UTF-8
locale-gen --purge "ja_JP.UTF-8"
dpkg-reconfigure --frontend noninteractive locales

日本語版をインストールすればいいのでは?

lxc launch 
docker run 

など、コンテナの日本語イメージをわざわざ作成し選択するメリットよりも、ロケールでやったほうが楽そうなんですよね。

デプロイやバックアップ用のSFTPアクセスだけを許可する、公開鍵を使う。

SFTP だけができるユーザーを作ると。

バックアップ用やデプロイ用に、ユーザーを作るのがめんどくさい。

ちょっとしたコマンドは実行できなくてSFTPさえできればいいときに、デプロイ用のユーザを作って /etc/ssh/sshd_config で管理するのも面倒

そこで、www-data やroot などの nologin ユーザーにSSH接続を許可してSFTPだけを使うようにする。

公開鍵を登録する autorized_keys でアレコレできる。

authorized_keys に設定を書き込めば、制限や細かい設定を鍵ごとに帰ることできる。そこで、SFTPだけの許可をauthorized_keys に追記する。

authorized_keys に次のようにかけば、OK

command="internal-sftp" ssh-rsa AAAAB3NzaC1yc2EAAAA

chrroot する場合は

authorized_keyにオプションをつけたものを書き込めばいいみたい。

command="internal-sftp -d /var/www" ssh-rsa AAAAB3NzaC1yc2EAAAA

SFTP さえあれば事足ることが多い。

自分以外のlinuxユーザーアカウントが、SSHアクセスしたい場合の大半はファイル転送だと思うんだ。いちいちコマンド実行できるSSHを許可するのも面倒だよね。ということで、

関連資料

SFTPユーザを作る話 → SSHをSFTPに制限して、ディレクトリを制限(chroot)した専用アカウントを作る - それマグで!

Ahtorized_keys で公開鍵ごとに機能制限する話 → sshの公開鍵authorized_keys ファイルの制限機能について調べてみたら楽しかった. - それマグで!

参考資料

https://stackoverflow.com/questions/23448900/public-key-authorization-on-sftp-chroot-directory#31477162