[TOC] # ec2の管理について 以下の操作は、unix系のterminalで実行してください ## TODO - 福田さんが行うべきことと、ssh接続したい人が行うべきことと、linuxの前提知識を混ぜて書いてしまっているので、あとで整理してください ## サーバー上でのユーザー追加 (福田さんの手順) ### サーバーへアクセスする ```bash= $ ssh it_ec2 ``` ### root権限に切り替える ```bash= $ sudo su - ``` ### 新規ユーザー作成 (rootで行う) メールサーバー(どこか)とファイルサーバー(/homeの下)に新規ユーザーが作成される ```bash= $ useradd hiroto.fukuda ``` ### (補足) ユーザー削除 (rootで行う) ```bash= $ userdel -r hiroto.fukuda ``` ## 追加したユーザーのsudo権限の制限 (福田さんの手順) 基本的に、sudoはシステムに影響を及ぼしうる権限を持つので、制限したい ### ユーザーの権限をいじるvisudoコマンド (rootで行う) ```bash= $ visudo ``` 下の方に行くと、このような記述がある ``` root ALL=(ALL) ALL it ALL=(ALL) !ALL yu.nakai ALL=(ALL) NOPASSWD: ALL takuto.nishimura ALL=(ALL) !ALL shota.abe ALL=(ALL) !ALL naoya.hieda ALL=(ALL) !ALL ``` - ユーザーit : `!ALL`なのでsudoは使えない - ユーザーyu.nakai : `NOPASSWD: ALL`なので、パスワードなしでsudoが使える - 他のユーザーも同様にsudoは使えない - rootのパスワードは確か`IAmItUserWhoCanForceSudo`. 使うシチュエーションは多分ない 新規のユーザーをここに **sudoを禁止にして** 登録する (vimのキーバインド:`i`でinsert. `escキー`でescape. escapeした状態で`:wq`で保存して閉じる) ## ssh 以下の手順は、他の人のsshキーを登録する際に必須となる 権限が間違っていると、ssh接続はできない 福田さんがサポートしながらssh接続をできるようにしてあげる ### sshキーの生成 (接続したい人) * そもそも、サーバーにssh接続するためには、公開鍵をサーバーに配置し、自身のpcには秘密鍵を配置し、sshコマンドを実行する必要がある * なので、自身のpc上でsshキーを作成し、そのうちの公開鍵をサーバーにアクセスできる誰かがサーバー上の配置する必要がある ```bash= $ ssh-keygen -t rsa Enter file in which to save the key (/home/hoge/.ssh/id_rsa): /home/hoge/.ssh/it_ec2 Enter passphrase (empty for no passphrase): (空で良いので、そのままenter) Enter same passphrase again: (これも空) ``` * 指定したディレクトリ (`/home/hoge/.ssh`) に`it_ec2`と`it_ec2.pub`の2つのファイルがある * このうちの、pubがない方が「秘密鍵」で、他人に共有してはいけない * pubがある方が「公開鍵」で、サーバーに送信する ### sshキーの自身のpc上でのconfigファイルへの登録 (接続したい人) ```bash= $ vim ~/.ssh/config ``` ここに、次の記述を追加する ``` Host it_ec2 IdentityFile ~/.ssh/it_ec2 HostName 3.114.251.84 User hiroto.fukuda ServerAliveInterval 60 ServerAliveCountMax 5 ``` ### sshキーの権限 (linuxの知識) `~`はホームディレクトリまでの絶対パスを表す ```bash= $ ls -l ~/.ssh/ -rw------- 1 hoge staff 2635 10 21 20:37 it_ec2 -rw-r--r-- 1 hoge staff 590 10 21 20:37 it_ec2.pub ``` - 一番左のカラムに10桁の文字列がある - 2-4桁, 5-7桁, 8-10桁で区切ってみる - 2-4桁が`rw-`になっている - 2-4桁は自分自身に関する権限 - 自分はr(read)とw(write)が可能 - 5-7桁が`---`になっている - 5-7桁はグループに関する権限 - 特に設定していなければ、ユーザー全員は同じグループにいる - 読み書き実行全てできない - 8-10桁が`---`になっている - ここはグループでもない、任意の人 - `rw`の後ろには`x`が来ることもある. execution - 左から3番目のカラムに、そのファイルがどのユーザーのものなのかが書かれている - 2-4桁の権限の対象はここに書いてあるユーザー - 左から4番目のカラムに、そのファイルがどのグループのものなのかが書かれている - 5-7桁の権限の対象 - sshキーの権限は、 - 秘密鍵 : 自分のみ`rw-`、その他は全て`---` - 公開鍵 : 自分のみ`rw-`、その他は全て`r--` - `r--` : 4, `-w-` : 2, `--x` : 1 - `rw-` : 6 - `rwx` : 7 - 2-4桁 -> 1つの数字. 5-7桁 -> 1つの数字. 8-10 -> 1つの数字 - `-rw-------` -> 600になる - `-rw-r--r--` -> 644になる ### .sshのディレクトリ自体の権限 (linuxの知識) ```bash= $ ls -l -a drwx------@ 36 nakaiyuu staff 1152 10 21 20:37 .ssh ``` - 先頭にdがついているのはdirectoryの意味 - 権限は`rwx------`なので、 - 自分のみ読み書き **実行** ができる - 数字にすると、700 ### ファイルやディレクトリの権限の変え方 (linuxの知識) ```bash= $ chmod 700 .ssh/ $ chmod 644 .ssh/it_ec2.pub $ chmod 600 .ssh/it_ec2 ``` * 上で説明した数字でこのように権限を変えることができる ### ファイルやディレクトリの所有者の変え方 (linuxの知識) * sshキーは`~/.ssh`に配置する * このホームディレクトリの所有者とsshキーの所有者が一致しなければならない #### ディレクトリの場合 (linuxの知識) ユーザーhogeに所有者を変更 `R`はディレクトリ下のファイル全ての権限を再帰的に変更するので、基本的に次の項目のファイルの所有者変更は使わない ```bash= $ chown -R hoge:hoge /home/hoge/.ssh ``` #### ファイルの場合 (linuxの知識) (こっちは使わないと思う) ```bash= $ chown hoge:hoge /home/hoge/.ssh/authorized_keys ``` ### authorized_keysに関して (linuxの知識) - サーバー側に公開鍵を配置する場合には、ファイル名を`authorized_keys`にした上で、所有者をホームディレクトリの所有者と一致させ、権限を600にする必要がある ### ssh公開鍵のコピー (福田さんの手順) - ssh接続したい人がsshキーを作成したら、その公開鍵を福田さんに送ってもらう - 福田さんはそれをコピーして、サーバーの`/home/新しいユーザー名/.ssh/authorized_keys`にペーストする - 送ってもらった公開鍵が`/home/hoge/Downloads/it_ec2.pub`にあるとして、次を実行すると表示ができる ```bash= $ cat ~/Downloads/it_ec2.pub ``` - これをコピーする ### ssh公開鍵の登録 (福田さんの手順) #### サーバーにアクセスする ```bash= $ ssh it_ec2 ``` #### root権限に切り替える ```bash= $ sudo su - ``` #### .sshディレクトリを権限700で作成する (rootで実行) ```bash= $ mkdir /home/hoge/.ssh $ chmod 700 /home/hoge/.ssh ``` #### .sshディレクトリにauthorized_keysを権限600で作成する ```bash= $ vim /home/hoge/.ssh/authorized_keys ``` - ここで、コピーした公開鍵をペーストする ```bash= $ chown $ chmod 600 /home/hoge/.ssh/authorized_keys ``` #### .sshディレクトリ以下の所有者を変更する ```bash= $ chown -R hoge:hoge /home/hoge/.ssh ``` #### rootの終わり方. ssh接続の終わり方 ```bash= $ exit ``` ## まとめ - ユーザー追加, sudo権限制限, sshのセットアップまで行えば、ssh接続したいユーザーがssh接続できるようになる ```bash= $ ssh it_ec2 ``` ### 注意 - わからないコマンドは使わない - 間違えると結構大変なことになる - 特に、sudo使う場合や、root権限でログインしている場合は注意 - 絶対パスと相対パスはくれぐれも注意する ### 新規にssh接続したいっていう人が現れたら - キーを作成してもらう - configをかいてもらう - キーを送ってもらう - 福田さんの方で、ユーザー作成から権限の制限、キーの追加と所有者や権限の変更を行う - 接続できることを確認する
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up