確認事項
- Ubuntu インスタンスを立ち上げたので、sshログインユーザ名はubuntu
- ローカルマシンもUbuntu (Desktop ver.)
- 初期ユーザ(ubuntu)の他にユーザ(deployer)を追加したい
- 追加ユーザへはSSH でアクセスできるようにしたい
- 間違いや改善点があればツッコミを
大まかな手順としては、
- [EC2] sshdの設定をして、ユーザの追加
- [Local] ssh-keygen して、scp で公開鍵(.pub)をアップロード
- [EC2] アップした鍵を新規ユーザの~/.sshフォルダに保存
- [EC2] ディレクトリ、ファイルの所有権、アクセス権を適切に設定
[EC2] sshd の設定、ユーザの追加
sshd の設定
/etc/ssh/sshd_config
...
#AuthorizedKeysFile %h/.ssh/authorized_keys
...
とコメントアウトされているので、コメントアウトを外す。(これで ~/.ssh/authorized_keys で認証できるように。)
このままだと設定が有効にならないので、sudo /etc/init.d/ssh restart
して再読み込み。
ユーザの追加
adduser deployer # ユーザの追加
usermod deployer -g admin # admin グループに追加
[Local] ssh-keygen, scp
いったんローカルに戻って、鍵の作成とアップロードをする
cd ~/.ssh/
ssh-keygen -f aws
scp aws.pub ubuntu@xxx.xxx.amazonaws.com:/tmp
そして再びEC2 インスタンスにubuntu ユーザとしてログイン。
[EC2] 公開鍵を保存
/tmp/aws.pub
に公開鍵を保存したので、sshd での設定に習ってdeployer のホームディレクトリ下に鍵をリネームして配置する
# ファイルの移動
whoami # => ubuntu
sudo su - deployer
whoami # => deployer
pwd # => /home/deployer
mkdir .ssh
mv /tmp/aws.pub ~/.ssh/authorized_keys
[EC2] フォルダ、ファイル権限の設定
whoami # => deployer
pwd # => /home/deployer
sudo su
whoami # => root
chmod 700 .ssh
chown deployer:admin .ssh
chmod 600 .ssh/authorized_keys
chown deployer:admin .ssh/authorized_keys
ユーザの削除
ユーザが要らなくなったら、userdel -r deployer
であとしまつ。
Links
(ただ ssh-copy-id
したかっただけだったのに...)