柿食えば 屁をしても一人

電気系の学生のブログ。何を書くかも決めていない

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 をしてあげれば良い。

お疲れさまでした。

もっといい方法とか、実はこの方法はセキュリティに問題があるとかあったらぜひ教えて下さい。