Database Support Blog

  • Oracle Cloud
2024.07.18

【Oracle Cloud】opcユーザー以外のSSH接続を許可する方法

opcユーザー以外のSSH接続を許可する方法

初版公開日:2022.04.07
  更新日:2024.07.18

Oracle Cloud Infrastructure上に、ComputeインスタンスやDBシステムを構築すると、システム管理者ユーザーであるopcユーザーが作成されます。

Linux OS上で何らかの作業を実施する場合、先ずopcユーザーでSSH接続をして、sudoコマンドを介して操作を行うことが一般的ですが、お客様の中にはopcユーザー以外からSSH接続を必要とするケースもあるかと思います。

今回は、opcユーザー以外のユーザーからSSH接続を行う方法をご紹介します。

※Computeインスタンスの場合は一般ユーザー以外にrootユーザーもSSH接続が可能ですが、DBシステムの場合は一般ユーザーのみとなります。
※SSH接続の設定が完了しても、opcユーザーの削除や無効化は控えてください。


SSH接続を許可する方法

新規作成の一般ユーザーの場合

1.ホストOSにopcユーザーでログイン後、rootユーザーにスイッチします。

 
 (opc) $ sudo su - 
 

2.対象ユーザー用のSSHキー・ペアを生成します。

 
 (root) # ssh-keygen -t rsa -N "<パスフレーズ>" -b 2048 -C "<任意のコメント>" -f ~/.ssh/id_rsa
 
 実行例:”sample”として作成する場合
 (root) # ssh-keygen -t rsa -N "sample" -b 2048 -C "sample_key" -f ~/.ssh/sample_id_rsa 
 

3.対象ユーザーを作成します。

 
 (root) # useradd <ユーザー名>
 
 .実行例:”sampleuser”として作成する場合
 (root) # useradd sampleuser 
 

4.対象ユーザーのホームディレクトリに.sshディレクトリを作成します。

 
 (root) # mkdir -p /home/<対象ユーザー名>/.ssh
 
 .実行例:”sampleuser”として作成する場合
 (root) # mkdir -p /home/sampleuser/.ssh
 

5.2で作成したSSH公開キーの内容を対象ユーザーのauthorized_keysファイルにコピーします。

 
 (root) # cat ~/.ssh/id_rsa.pub > /home/<対象ユーザー名>/.ssh/authorized_keys
 
 .実行例:”sampleuser”に実行する場合
 (root) # cat ~/.ssh/id_rsa.pub > /home/sampleuser/.ssh/authorized_keys
 

6./etc/ssh/sshd_configファイルのAllowUsersパラメータに対象ユーザーを追記します。

  • Computeインスタンスの場合は不要です。
  • AllowGroupsパラメータとAllowUsersパラメータを共に設定した場合、これらは「and」条件として評価されます。
     AllowGroupsパラメータを用いる場合は、AllowGroupsに設定しているグループに対象ユーザを追加してください。

 
 (root) # vi /etc/ssh/sshd_config
 
 .実行例:”sampleuser”を追記する場合
 AllowUsers sampleuser
 
 .※DBシステムの場合、すでにgridユーザーとoracleユーザーが記載されていますので下に追記します
 AllowUsers grid
 AllowUsers oracle
 

7./home/<ユーザー名>/.sshディレクトリの所有者およびグループを対象ユーザーに変更します。

 
 (root) # chown -R <ユーザー名>:<グループ> /home/<ユーザー名>/.ssh
 
 .実行例:”sampleuser”を設定する場合
 (root) # chown -R sampleuser:sampleuser /home/sampleuser/.ssh
 

8.SSHデーモンを再起動します。

 
 (root) # /sbin/service sshd restart
 Redirecting to /bin/systemctl restart sshd.service
 

9.対象ユーザーにsudo権限を有効にする場合は、visudoコマンドで/etc/sudoersファイルを編集します。

 
 (root) # visudo
 
 以下を追記します。
 <ユーザー名> ALL=(ALL) NOPASSWD: ALL
 
 .実行例:”sampleuser”を設定する場合
 sampleuser ALL=(ALL) NOPASSWD: ALL
 

10.2で作成したSSH暗号キーファイルをクライアント端末に配置してターミナルソフトからSSH接続できることを確認します。


rootユーザーの場合

Computeインスタンスであれば、直接rootユーザーでSSH接続を行うことが可能です。


1.ホストOSにopcユーザーでログイン後、rootユーザーにスイッチします。

 
 (opc) $ sudo su - 
 

2.SSHキー・ペアを生成します。

 
 (root) # ssh-keygen -t rsa -N "<パスフレーズ>" -b 2048 -C "<任意のコメント>" -f ~/.ssh/id_rsa
 

3./root/.ssh/authorized_keysファイルから以下の文字列を削除します。

 
 (root) # vi /root/.ssh/authorized_keys
 
 ※削除する文字列(表示上、改行しています)
 "no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo  'Please login as the user \"opc\" rather than the user \"root\".';echo;sleep 10""keys. 
 

4.2で作成したSSH公開キーの内容をrootユーザーのauthorized_keysファイルにコピーします。

 
 (root) # cd ~/.ssh
 (root) # cat id_rsa.pub > authorized_keys
 

5.2で作成したSSH暗号キーファイルをクライアント端末に配置してターミナルソフトからSSH接続できることを確認します。


まとめ

今回は、opc以外のユーザーでもSSH接続を行う方法をご紹介しました。

基本的にはopcユーザーからsudoコマンドを介して管理操作を実施いただくことが望ましいですが、お客様の運用上、opc以外のユーザーからSSH接続を行う必要がある場合には本記事や以下マニュアルを参考の上、設定実施をご検討いただけますと幸いです。

Linuxインスタンスでのキー・ペアの管理
https://docs.oracle.com/ja-jp/iaas/Content/Compute/Tasks/managingkeypairs.htm#Managing_Key_Pairs_on_Linux_Instances


執筆者情報

いちじょう だいさく プロフィール画像

2018年アシスト入社後、Oracle Databaseフィールド業務に従事。2019年からはOracle Cloudのフィールド業務とサポート業務を兼務中 ...show more


■本記事の内容について
 本記事に示した定義及び条件は変更される場合があります。あらかじめご了承ください。

■商標に関して
 ・Oracle®、Java、MySQL及びNetSuiteは、Oracle、その子会社及び関連会社の米国及びその他の国における登録商標です。
 ・Amazon Web Services、AWS、Powered by AWS ロゴ、[およびかかる資料で使用されるその他の AWS 商標] は、Amazon.com, Inc. またはその関連会社の商標です。
  文中の社名、商品名等は各社の商標または登録商標である場合があります。

関連している記事

  • Oracle Cloud
  • Oracle Database
2024.07.19

Oracle Cloud Shellで簡単にOCIのComputeへシリアルコンソール接続する方法!

Oracle Cloudで構築したComputeインスタンスは、ハードウェア等インフラ周りはオラクル社が管理しますが、OSやアプリケーションはお客様が管理する必要があります。今回は、事前準備不要で簡単に操作可能なCloud Shellによるコンソール接続をご紹介します。

  • Oracle Cloud
2024.07.19

【Oracle Cloud】Oracle Base Database Serviceにシリアル・コンソール接続する方法

これまでComputeインスタンス停止の自動化はOCI CLIやcronやタスクスケジューラ、ジョブ管理ツールからのCLI実行が必要でした。自動スケーリング機能がリリースされたことで任意の日時でComputeインスタンスの起動/停止が可能となりました。課金抑制にも繋がる詳細手順をご紹介します。

  • Oracle Database
  • Oracle Cloud
  • AWS
2024.07.09

Oracle Databaseライセンスの定義とルールを正しく理解する ~第4回:クラウド編~

今回はOracle Databaseライセンス「クラウド環境編」です。これまでエディション、ライセンスの種類、カウントの方法、という基本的な部分と、構成面の理解として仮想化環境の考え方をご紹介してきました。今回はクラウド環境におけるOracle Databaseライセンスの定義やルールを解説します。

ページの先頭へ戻る