サーバーに新ユーザーを作ってsshできるようにする。
早速始めていこう。
今回使ったサーバーはAWSEC2です。
使うosはcentos.
まず前提として自分のパソコンからサーバーにログインできることが必要ですね
~~新ユーザー作成
ではサーバーにログインしたら新ユーザーを作りましょう。
そのためにはroot userにならないと行けない。
sudo su -
このコマンドでrootになったら
useradd [オプション] ユーザー名
また今回はこのユーザーにsudo権限を付けようと思ってるのでパスワードもつける。
passwd [オプション] ユーザー名
ここで単純なパスワードを設定するとBAD PASSWORDと出るがEnterを押すと設定できてしまうので気を付ける。
作成したユーザーは/etc/passwdに追加されている。
~~権限を与える
次に作ってあげたユーザーにsudo権限を付与する。
作ったユーザーにsudo権限を持たせるには/etc/sudoersを開き編集したらいい。
/etc/sudoersはsudo権限を設定する重要なファイルである。そのため専用のコマンドが用意されている。
そこで使うコマンドが[visudo]である。
このコマンドでファイルを書き換えたら自分のユーザーにsudo権限が付与できる。
だが、一般的にはユーザーにsudo権限を持たせたい場合[wheel]というグループに入れてあげれば良い。
wheelグループはデフォルトでsudo権限が与えられているためわざわざ/etc/sudoersを編集しなくてもいいということである。(編集して色々バグとか起きたら直すの大変だしね)
usermod -aG wheel ユーザー名
これでwheelグループに追加され無事sudo権限を手に入れた。
~~秘密鍵作成
新ユーザーのホームディレクトリで.sshディレクトリを作成しよう。
その後、一度サーバーからローカルに戻り秘密鍵を作る。
~/.sshディレクトリに入って
ssh-keygen -f [鍵の名前]
- fは秘密鍵に名前をつけるオプション。
これで公開鍵(.pub)と秘密鍵が生成された。
早速作ったユーザーに公開鍵を送りたいところだが今その設定をしているため一度元々存在するユーザー(元々sshログインできるユーザー)に送ってから新ユーザーに渡す。
scp -i [既存ユーザーの鍵] ローカルディレクトリパス ユーザーホスト名@ipアドレス:サーバーディレクトリパス
これで公開鍵はサーバーに渡った。あとはこれを新ユーザーの.sshディレクトリに入れてあげる。
公開鍵のあるディレクトリで
mv 公開鍵名 /home/ユーザー名/.ssh/authorized_keys
<追記>
ここでおそらくauthorized_keysの所有者とグループは今sshログインしたユーザーのものになってるから自分のユーザーに変更しておこう。
これで公開鍵の設置完了!
あとは.sshとauthorized_keysの権限を確認しよう。
これが間違えてたらPermission deniedと怒られてしまう。
- .sshは700
- authorized_keysは600
最後に
ssh ipアドレス -l ユーザーホスト名 -i ~/.ssh/秘密鍵名
これでログインできたら終了!!!お疲れ様でした