初版公開日: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/sample_id_rsa.pub > /home/<対象ユーザー名>/.ssh/authorized_keys
.実行例:”sampleuser”に実行する場合
(root) # cat ~/.ssh/sample_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