Oracle Compute Cloud ServiceインスタンスでのSSH対応ユーザーの作成


オプション



開始する前に

目的

このチュートリアルでは、Oracle Compute Cloud ServiceインスタンスでSSH対応ユーザーを作成し、新しいユーザーにsudo権限を付与する方法について説明します。

所要時間

15分

背景

Oracle Compute Cloud Serviceは、Oracle Java Cloud ServiceとOracle Database Cloud Serviceのインスタンス用として計算、ネットワーキングおよびブロック・ストレージのインフラストラクチャを提供します。

Oracle Java Cloud ServiceまたはOracle Database Cloud Serviceのインスタンスを作成する場合、基礎となるOracle Compute Cloud Service VM上でopcという名前のユーザーが自動的に作成されます。インスタンスの作成時に指定した公開鍵に対応するSSH秘密鍵を使用することにより、opcとしてこれらのVMに対してsshを実行できます。場合によっては、Oracle Compute Cloud Service VMで追加のSSH対応ユーザーを作成することもできます。

注意: Oracle Java Cloud Serviceインスタンスを停止して再起動すると、基礎となるOracle Compute Cloud Service VMに対して行った変更(ユーザーの作成を含む)は失われます。

必要なもの

新しいユーザーを作成するOracle Java Cloud ServiceまたはOracle Database Cloud ServiceノードのパブリックIPアドレス。

SSH鍵ペアの生成

  1. ローカル・マシン(Oracle Java Cloud ServiceまたはOracle Database Cloud Serviceノードでない)上で、次の例に示すように、新しいユーザーが使用するSSH鍵ペアを生成します。

    ファイル名の入力を求められたら、任意のファイル名を入力します。パスフレーズの入力を求められたら、[Enter]を押してパスフレーズを入力せずに次に進みます。

    $ ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/joe/.ssh/id_rsa): /home/joe/.ssh/myadmin
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/joe/.ssh/myadmin.
    Your public key has been saved in /home/joe/.ssh/myadmin.pub.
    The key fingerprint is:
    e1:e0:f7:31:83:96:a5:8d:f6:f7:9c:1d:cb:2d:3e:7f joe@abc01234
    The key's randomart image is:
    +--[ RSA 2048]----+
    |                 |
    |                 |
    |      . . .      |
    |     . o O       |
    |      . S =      |
    |       + o +     |
    |          o .  . |
    |           . o+oE|
    |             .=*=|
    +-----------------+

    この例では、秘密鍵は/home/joe/.ssh/myadminに格納されており、公開鍵は/home/joe/.ssh/myadmin.pubに格納されています。

  2. 公開鍵の値をテキスト・ファイルにコピーします。これは、このチュートリアルの後半で必要になります。

    $ cat /home/joe/.ssh/myadmin.pub
    ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAuOb4NO1l6QckeVgk/8ZdJc8UkfYYK/8CiAewxZdMRkuTMmjmmgr21ulRd4MompURb+Xw/cVOlK2eaBJRL9TXzG2Mf5gj8lyeve2GoIhiFXrV6bU9DlVSrf+y3BqNMixsF1/aSizP2PHmnECZyWdIKi5KdvNtyVE6f5Ul/286yJf3LCNP+bKLHv6uL8KwhArlz8cfv1OGYpzVW6e7Ja824RdHRTXOuh7JAR/1tGtd9lbZW/qqClyJlSbWVOh46l/2DdqoWQx6L7qzW3AzWVnTniFY4T8W06qT9pNbE08ygyCPVRfu8ZlBmRihFYRxdX4wm1P5qWj7RVhfmpq/AFrEyQ== joe@abc01234

ユーザーの作成およびユーザーに対するSSHアクセスの有効化

  1. 新しいユーザーを作成するOracle Java Cloud ServiceまたはOracle Database Cloud Serviceに対してopcとしてsshを実行します。

    sshコマンドで、-iオプションを使用して、Oracle Java Cloud ServiceまたはOracle Database Cloud Serviceインスタンスの作成時に指定した公開鍵に対応する秘密鍵を指定します。

    $ ssh -i ~/.ssh/occs opc@11.12.13.14
    Authorized uses only. All activity may be monitored and reported.
  2. ユーザーを追加するには、rootユーザーである必要があります。次のコマンドを実行します。
    [opc@joedb ~]$ sudo su
  3. ユーザーとして、たとえば、myadminを作成します。

    [root@joedb opc]# useradd myadmin
  4. 新規ユーザーのホーム・ディレクトリで.sshディレクトリを作成します。

    [root@joedb opc]# mkdir /home/myadmin/.ssh
  5. 「SSH鍵ペアの生成」の手順2で書き留めた公開鍵値をOracle Database Cloud ServiceまたはOracle Java Cloud Serviceノード上の/home/myadmin/.ssh/authorized_keysファイルにコピーします。

    [root@joedb opc]# echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0ibAEmysI4o1zfb4dOJIyaN67pya8AnOozVewilpv560jiagTzwrPG8bmK4GL3KEUc3lxZ/Xhj7RvdOD0qMAx0fFB3r80ZSy1KlkIXwKumUY+YBMyn1xdMluWS/J4JWKBpuoOMNTGy7QdCPIHrt07OnwSxvZsoyTsh9QZ/eJv4qR0YaFkAHyH9Si2hTC/6G6CZdXkw93LyEtW1ykxxkSJB6JYwB8FsBMcXPvYJ5CiR30fKqo6GP+WTz1xbTbahLLO31mx/qSDntcXEYgfpw7Abi8W6LSkExFOxrsKir8QqZregznVeWPiht9kf4PT9C3WOoDzA0aF1q+g1CJ1EhZow== joe@abc01234" > /home/myadmin/.ssh/authorized_keys
  6. 公開鍵がOracle Database Cloud ServiceまたはOracle Java Cloud Serviceノードに正常にコピーされたことを確認します。

    [root@joedb opc]# cat /home/myadmin/.ssh/authorized_keys
    ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0ibAEmysI4o1zfb4dOJIyaN67pya8AnOozVewilpv560jiagTzwrPG8bmK4GL3KEUc3lxZ/Xhj7RvdOD0qMAx0fFB3r80ZSy1KlkIXwKumUY+YBMyn1xdMluWS/J4JWKBpuoOMNTGy7QdCPIHrt07OnwSxvZsoyTsh9QZ/eJv4qR0YaFkAHyH9Si2hTC/6G6CZdXkw93LyEtW1ykxxkSJB6JYwB8FsBMcXPvYJ5CiR30fKqo6GP+WTz1xbTbahLLO31mx/qSDntcXEYgfpw7Abi8W6LSkExFOxrsKir8QqZregznVeWPiht9kf4PT9C3WOoDzA0aF1q+g1CJ1EhZow== joe@abc01234
  7. 新しいユーザーに対してSSHアクセスを有効にするには、viまたは他のエディタを使用して/etc/ssh/sshd_configファイル内のAllowUsersパラメータを編集します。

    /etc/ssh/sshd_config内のデフォルトのAllowUsers設定は、次のとおりです。

    AllowUsers oracle opc

    次に示すように、AllowUsers設定を変更します。

    AllowUsers oracle opc myadmin
  8. /home/myadmin/.sshディレクトリの所有者およびグループをrootから新しいユーザーmyadminに(再帰的に)変更します。

    [root@joedb opc]# chown -R myadmin:myadmin /home/myadmin/.ssh 
  9. sshdサービスを再起動します。

    [root@joedb opc]# /sbin/service sshd restart
    Stopping sshd:                                             [  OK  ]
    Starting sshd:                                             [  OK  ]

新規ユーザーのsudo権限の有効化

  1. 新しいユーザーのsudo権限を有効にするには、visudoコマンドを使用して/etc/sudoersファイルを編集します。

    sudo visudo -f /etc/sudoers

    /etc/sudoersで、次の行を探します。

    %opc    ALL=(ALL)       NOPASSWD: ALL 

    前述の行の直後に、次の行を追加します。

    %myadmin   ALL=(ALL)       NOPASSWD: ALL

    この場合、myadminは、新しいmyadminユーザーが属する自動作成グループです。

  2. rootユーザー・セッションを終了し、Oracle Database Cloud ServiceまたはOracle Java Cloud Serviceノードを終了します。

これで、「SSH鍵ペアの生成」の手順1で生成した秘密鍵を使用して、myadminとしてOracle Database Cloud ServiceまたはOracle Java Cloud Serviceノードに対してsshを実行できます。

$ ssh -i /path/to/private/key myadmin@public_ip_address
Authorized uses only. All activity may be monitored and reported.
[myadmin@joedb ~]$

注意: Oracle Java Cloud Serviceインスタンスを停止して再起動すると、基礎となるOracle Compute Cloud Service VMに対して行った変更(ユーザーの作成を含む)は失われます。