useraddで最初から.ssh/authorized_keysがつくれるようにする。 /etc/skel
備忘録です。
モチベーション
新年度になって、毎年10人ぐらいのアカウントを複数のサーバで作らないといけなく、しかも認証サーバを立てる技術がない。
アカウントを作るのはuseraddで秒で出来るので、いいのですが、意外にめんどくさいのが、公開鍵の設定。
なんかSELinuxのせいだと思うんですけど、間違えてroot で作ってchownしても権利が正しく譲与できないとか、別の人の公開鍵を入れてしまったり。 なんかいい方法がないかなーとおもったら見つけた。
userをuseraddで追加すると、/home/user
にディレクトリがつくられるのですがその時のテンプレートは /etc/skel
にかかれているのだとか。
なので、そこに .ssh/authorized_keys
を追加してあげることで自動的に作られます。
デフォルトのUbuntuの/etc/skel
で作ったとき
test1@LAMP1:~$ pwd /home/test1 test1@LAMP1:~$ tree -al . ├── .bash_history ├── .bash_logout ├── .bashrc ├── .gnupg │ └── private-keys-v1.d └── .profile
(なんだぁ。このgnupgは)
もちろん、.ssh
はない
そこで、
/etc/skel
を
root@LAMP1:/etc/skel# tree -a . ├── .bash_logout ├── .bashrc ├── .profile └── .ssh └── authorized_keys 1 directory, 4 files
のふうに追加してあげる。permissionも引き継ぐみたいなので、permissionも正しく変更。 これにより、
test2@LAMP1:~$ tree -a . ├── .bash_history ├── .bash_logout ├── .bashrc ├── .cache │ └── motd.legal-displayed ├── .gnupg │ └── private-keys-v1.d ├── .profile └── .ssh └── authorized_keys 4 directories, 6 files
このように.sshが作れる。
あとは cat key.pub >> .ssh/authorized_keys
をしてあげれば良い。
お疲れさまでした。
もっといい方法とか、実はこの方法はセキュリティに問題があるとかあったらぜひ教えて下さい。