プロビジョニング直後にDBCSへscpでファイルを送信する際、デフォルトの設定で/home/oracle へデータを転送したい場合はPermission Deniedが発生します。
scpで接続するためには、転送先のフォルダおよび、公開鍵に権限設定を付与する必要があります。
この方法を実施すると、他のOSユーザも自由にファイルを配置できてしまうため、一時的にセキュリティが弱くなってしまいますが、サイズの大きいファイルを/home/oracle配下へ直接転送したい場合などのためにまとめています。
/home/oracle 配下にscpでファイル転送を行う方法をまとめています。
なお、/tmp 配下は下記の手順を実行せずとも、scp通信が可能です。
###デフォルト設定でscpでファイル転送した結果
下記のエラーが発生します。
scp -i /Users/ipaccho/ssh-key-YYYY-MM-DD.key /Users/ipaccho/*.* opc@xxx.xxx.xxx.xxx:/home/oracle
scp: /home/oracle/apex_20.2.zip: Permission denied
scp: /home/oracle/ords-20.4.1.013.1644.zip: Permission denied
■参考にさせて頂いた記事
SSH で Permission Denied となる傾向と対策
##作業手順
1.DBCSの設定変更
1-1./home/oracleのパーミッション変更
1-2.opcユーザのssh関連ディレクトリ、およびauthorized_keysのパーミッション変更
2.動作確認
###今回使用したサービスと技術
・OCI Database Cloud Service
・scp
###著者の環境
Mac OS X 10.15.7
##1.DBCSの設定変更
###1-1.opcユーザのssh関連ディレクトリ、およびauthorized_keysのパーミッション変更
scpでファイルを転送するためには、/home/opc/.sshを700,/home/opc/.ssh/authorized_keysを600にする必要があります。
デフォルトでは、/home/opc/.sshは700ですが、/home/opc/.ssh/authorized_keysは644になっています。
opcユーザで接続先DBCSのauthorized_keysのパーミッションを644から600へ変更します。
chmod 600 /home/opc/.ssh/authorized_keys
###1-2./home/oracleのパーミッション変更
oracleユーザのパーミッションをデフォルトの700から757へ変更します。
757にすると、他のOSユーザも/home/oracle配下に自由にファイルが配置でき、見ることができるため注意が必要です。
sudo chmod 757 /home/oracle
なお、/home/opc のパーミッションを757にしてしまうと、下記のエラーが発生してしまうので要注意です。
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
lost connection
##2.動作確認
著者の環境から下記スクリプトでファイルを送信しました。
scp -i /Users/ipaccho/ssh-key-YYYY-MM-DD.key /Users/ipaccho/*.* opc@xxx.xxx.xxx.xxx:/home/oracle
apex_20.2.zip 100% 229MB 8.8MB/s 00:25
ords-20.4.1.013.1644.zip 100% 71MB 8.7MB/s 00:08
エラーなく送信が完了しました。
##参考
■cloud-init公式マニュアル
ベア・メタルおよび仮想マシンのDBシステム
###再掲
■参考にさせて頂いた記事
SSH で Permission Denied となる傾向と対策