Cloud n にオールインワンサーバを立てる 2
今回は SSH 接続する時に使うユーザ作成と、ユーザ環境を構築。
ユーザの SSH 環境
Teraterm や Putty などで仮想サーバに SSH 接続し、アドミン的なユーザを作成する。
1. ユーザ作成
wheel グループと言えば、一昔前は root に昇格できるすごいユーザと言うイメージがあったが、今となってはそういう分類はもう古くなってしまったのかもしれない。何故なら、推測されやすいユーザ名やグループ名はセキュリティホールになり得るからだ。
Cent OS 6.5 で単純にユーザを作ると、グループはユーザ名に等しくなる。つまり、 hoge ユーザを作ると hoge グループが作成され、ユーザはただ一つのグループに所属されることになる。グループという分類が何のためにあるのか考えさせられる挙動だ。まあ、セキュリティ的にはいいんだろうけど。
# useradd hoge -c "Administrator" # passwd hoge
※ Linux ユーザの常識として、 # で始まっているコマンドは root 権限で実行されていることを意味する。
※ 同様に $ とか % で始まっているコマンドは一般のユーザで実行されていることを意味する。特にどちらと言う決まりもないので気分次第で記号を使っている。
2. root から hoge ユーザにチェンジユーザして SSH 環境を構築
# su - hoge ※ 以下、hoge ユーザで実行される $ mkdir .ssh $ chmod 700 .ssh $ ssh-keygen -t rsa $ chmod 600 ~/.ssh/id_rsa ~/.ssh/id_rsa.pub $ mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
/home/hoge/.ssh/id_rsa が秘密鍵になる。これはテキストファイルなので、
$ cat /home/hoge/.ssh/id_rsa
で中身を表示させ、選択してコピーする。それをメモ帳にでも貼り付けて、デスクトップとか分かりやすいフォルダに保存しておくこと。(ex. ファイル名: identity1)
これで root ユーザの SSH を禁止した後に hoge ユーザで接続できる環境が整った。
hoge ユーザから root ユーザに戻る
$ exit
3. root の SSH 禁止
# vi /etc/ssh/sshd_config -------------------------------------------------- 以下の部分を変更 ・ ssh2 で接続 # The default requires explicit activation of protocol 1 Protocol 2 ・ root ログイン不可 PermitRootLogin no RSAAuthentication yes PubkeyAuthentication yes ・ パスワードログイン不可 # To disable tunneled clear text passwords, change to no here! PasswordAuthentication no #PermitEmptyPasswords no -------------------------------------------------- # service sshd reload
sshd をリロードした後、 root での SSH 接続が禁止される。さらに SSH 接続するためには鍵が必要になった。
次に hoge ユーザでの ssh 接続を試すわけだが、現在接続されている SSH は切断しないようにする。何故なら、 SSH の設定に失敗していると hoge ユーザはもとより root ですら接続できなくなり、コンソール接続での不自由な設定をしなければならなくなるからだ。
4. Teraterm で接続
接続できていればよし。出来なければ何かがおかしいので設定を見直さなければならない。
ユーザの BASH 環境
hoge ユーザと root ユーザの bash 環境を整えてしまおう。
bash というのはユーザがログインした時に走っているシェルのことだ。代表的なのは bash や zsh、 csh や tcsh、最小限の sh などだが、デフォルトでは bash になっているから bash の環境構築を行う。
1. .bashrc 編集
とりあえず ll コマンドは必須。あとはコマンドプロンプトに現在のディレクトリが表示されると便利だ。
$ vi ~/.bashrc
以下の内容を .bashrc のどこかに書き込む。
- # User specific aliases and functions
- alias rm='rm -i'
- alias cp='cp -i'
- alias mv='mv -i'
- alias ll='ls -al'
- # Terminal
- PS1='\n\[\033[01;32m\]$PWD [\!]\[\033[0m\] \$ '
2. .bashrc 適用
.bashrc は root ユーザにも hoge ユーザにもあるので、変更したいユーザに対して変更する。
修正が終わったら、以下のコマンドを打つことで .bashrc が適用される。
$ source ~/.bashrc
~/ は自分のディレクトリ (ホームディレクトリ) を示す。 ~/ の実ディレクトリは /root や /home/hoge など、実行するユーザによって異なる。
3. 適用後
こんなカンジの見た目になる。
/home/hoge [201] $
カギカッコの中身はコマンド履歴の番号だ。これは次のような場合に使える。
$ history | grep wget 178 wget www.vim.org/scripts/download_script.php?src_id=9750
上記コマンドで目的のコマンドが 178 番目に実行されたとしよう。同じコマンドを打ち直したいなら、以下のようにすればいい。
$ !178
というわけで、今後は root での SSH ができなくなったので hoge ユーザで接続すること。
※ 知らない人は少ないと思うが、 hoge というのは技術者が良く使うテキトーな言葉なので、自分なりのキーワードに変更して入力すること。 hoge というユーザを作った人はいないと思うが……