要塞(Bastion)を使って、プライベート・ネットワークにあるコンピュート・インスタンスに接続する方法を記述します。
以下の記述では、コンパートメント名がMyAPEXDomain、仮想クラウド・ネットワークの名前もコンパートメント名と同じくMyAPEXDomain、その中に作成されているプライベート・ネットワークの名前がPrivate Subnet-MyAPEXDomainであると仮定します。記事中のそれらの名称は、それぞれの環境に合わせて読み直す必要があります。接続先となるコンピュート・インスタンスの名前はCMORDS1としています。
コンパートメント名と仮想クラウド・ネットワークに同じ名前MyAPEXDomainが付けられています。そのため、説明が若干わかりにくくなってしまいました。
要塞(Bastion)を作成する
要塞名はBastion1とします。ネットワーキングの構成のMyAPEXDomainのターゲット仮想クラウド・ネットワーク(このMyAPEXDomainはコンパートメント名)としてMyAPEXDomain(このMyAPEXDomainはVCNの名前)、MyAPEXDomainのターゲット・サブネットとして、接続するコンピュート・インスタンスが配置されているサブネットを選択します。ここではPrivate Subnet-MyAPEXDomainを選択しています。CIDRブロック許可リストには0.0.0.0/0を指定します。とりあえず、ネットワークのどこからでも要塞に接続できるようにしています。
Bastion1の状態がアクティブになると、要塞の完成です。
コンピュート・インスタンスへファイルをアップロードする
ssh -i <privateKey> -N -L <localPort>:10.0.1.82:22 -p 22 ocid1.bastionsession.oc1.ap-tokyo-1.amaaaaaawzoefcia4dtbwg5kixkgv3ixgsupn2625puytgcsvk6dyrch27bq@host.bastion.ap-tokyo-1.oci.oraclecloud.com
% ssh -i ssh-key-cmords1.key -N -L 10022:10.0.1.82:22 -p 22 ocid1.bastionsession.oc1.ap-tokyo-1.amaaaaaawzoefcia4dtbwg5kixkgv3ixgsupn2625puytgcsvk6dyrch27bq@host.bastion.ap-tokyo-1.oci.oraclecloud.com
% sftp -i ssh-key-cmords1.key -P 10022 opc@localhost
Connected to localhost.
sftp> put Wallet_APEXDEV.zip
Uploading Wallet_APEXDEV.zip to /home/opc/Wallet_APEXDEV.zip
Wallet_APEXDEV.zip 100% 21KB 1.3MB/s 00:00
sftp> put apexugj.dev.zip
Uploading apexugj.dev.zip to /home/opc/apexugj.dev.zip
apexugj.dev.zip 100% 6762 752.1KB/s 00:00
sftp> exit
%
コンピュート・インスタンスへSSHで接続する
ssh -i <privateKey> -o ProxyCommand="ssh -i <privateKey> -W %h:%p -p 22 ocid1.bastionsession.oc1.ap-tokyo-1.amaaaaaawzoefciakq7z6smcwfodqn2ebveyeca7z7brmbn2dfgdmpox4dyq@host.bastion.ap-tokyo-1.oci.oraclecloud.com" -p 22 opc@10.0.1.82
% ssh -i ssh-key-cmords1.key -o ProxyCommand="ssh -i ssh-key-cmords1.key -W %h:%p -p 22 ocid1.bastionsession.oc1.ap-tokyo-1.amaaaaaawzoefciakq7z6smcwfodqn2ebveyeca7z7brmbn2dfgdmpox4dyq@host.bastion.ap-tokyo-1.oci.oraclecloud.com" -p 22 opc@10.0.1.82
The authenticity of host '10.0.1.82 (<no hostip for proxy command>)' can't be established.
ECDSA key fingerprint is SHA256:oTItIYbGj7E26UZlk2dcXFqcBeZ5GXGUVbJXyn+IkJY.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.0.1.82' (ECDSA) to the list of known hosts.
Activate the web console with: systemctl enable --now cockpit.socket
[opc@cmords1 ~]$