LoginSignup
13
8

More than 5 years have passed since last update.

EC2内に作業用ユーザーを追加して、新規鍵を元にSSH接続する手順

Last updated at Posted at 2017-10-13

はじめに

あるプロジェクトで他社の開発者もEC2インスタンス内で作業する必要が出てきた。
その際、pemファイルを渡さない方法で他社の開発者がSSH接続できる環境を作りたく色々調べた際のメモ。

割とこういう場面ってあるんじゃないかと思う。

目次

  1. EC2内にユーザーを追加
  2. ローカルマシンで鍵の作成
  3. サーバーに公開鍵を設置と設定
  4. ローカルから鍵を元にアクセス

1. EC2内にユーザーを追加する

まずは、他社用のユーザーを追加し、設定する。

例ではhogeuserが他社のアカウントになるので、その部分を適宜変更して進めてみてください

// EC2内でルート権限になる
$ sudo -i

// ユーザー追加
$ useradd hogeuser

// パスワードを設定
$ passwd hogeuser

$ vi /etc/sudoers
vimでsudoersを開きhogeuserに関する記述を追記

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
# 以下を追記
hogeuser ALL=(ALL) ALL

編集終わったら、escを押し、:wpを入力してエンター

2. ローカルマシンで鍵の作成

他社の開発者が以下で作成した鍵を元にアクセスをしてもらうために、新規で鍵を作成する。

以下はサーバーではなく自分のPC内で行う

// .sshフォルダがなければ作成
$ mkdir ~/.ssh

// .sshフォルダに入る
$ cd ~/.ssh

// 鍵の作成
$ ssh-keygen -t rsa -f id_rsa_hogeuser

以上で、.sshフォルダ内にid_rsa_hogeuserid_rsa_hogeuser.pubというファイルが生成される。前者が秘密鍵で、後者が公開鍵。


// scpコマンドで公開鍵をアップロード
$ scp -i 〇〇.pem ~/.ssh/id_rsa_hogeuser.pub ec2-user@EC2インスタンスのパブリックIP:/home

3. サーバーに公開鍵を設置と設定


// ec2内に入りルートユーザーになる
$ sudo -i

// ユーザーのディレクトリを作成
$ cd /home

$ mkdir hogeuser

// hogeuserディレクトリに入る
$ cd hogeuser

// .sshディレクトリを作成
$ mkdir .ssh

// 公開鍵をコピーしてリネーム
$ mv /home/id_rsa_hogeuser.pub /home/hogeuser/.ssh/authorized_keys

// ユーザーとグループを変更
$ chown -R hogeuser:hogeuser ./.

// 権限変更
$ chmod 700 .ssh

$ chmod 600 .ssh/authorized_keys

4. ローカルから鍵を元にアクセス

// 秘密鍵を元にアクセス
$ ssh hogeuser@EC2インスタンスのパブリックIP ~/.ssh/id_rsa_hogeuser

上記入力後に作成したパスワードでアクセスが可能。
rootユーザーになりたい場合も同じパスワードでなれる。

13
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
8