Database Support Blog

  • Oracle Cloud
2022.04.14

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

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

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インスタンスの場合は不要です。

 
 (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のフィールド業務とサポート業務を兼務中。

保有資格
・Oracle Cloud Infrastructure 2019 Certified Architect Associate


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

■商標に関して
 OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。
 文中の社名、商品名等は各社の商標または登録商標である場合があります。


Oracle Databaseライセンスのご相談ならアシスト

関連している記事

  • Oracle Database
  • Oracle Cloud
  • PostgreSQL
  • AWS
  • Exadata
2022.05.24

入社2年目がレポート!Cloud Database Days 2022技術セッションの見どころ

2022年5月26日~6月3日に開催される「Cloud Database Days 2022」。その中でも10個に分かれた技術セッションについて、ポイントを押さえてそれぞれご紹介いたします!

  • Oracle Cloud
2022.03.10

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

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

  • Oracle Cloud
2021.11.26

【Oracle Cloud Infrastructure】ログファイル管理の強い味方!Loggingサービスの使い方

Oracle Cloud Infrastructure Loggingは、Oracle Cloudのコンソールの操作ログやComputeインスタンスに導入したアプリケーションのログファイルの収集から分析まで簡単に行うことができます。本記事ではLoggingの基本的な使い方をご紹介します。

ページの先頭へ戻る