ノート:
- このチュートリアルでは、Oracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了するときに、これらの値をクラウド環境に固有の値に置き換えます。
Oracle Cloud Infrastructureを使用したLinuxコンピュート・インスタンスへのアクセスおよび管理
イントロダクション
このチュートリアルでは、Linuxインスタンスのコンソールにアクセスして、アプリケーションをインストールしたり、管理操作を実行する方法について説明します。
接続アプローチ
Linuxコンピュート・インスタンスには、複数のアプローチを使用してアクセスできます。最も一般的なアプローチを挙げました。
-
アプローチ1: macOS端末でSSH秘密キーを使用して、SSH経由でコンピュート・インスタンスのパブリックIPアドレスに接続します。
-
アプローチ2: Oracle Cloud Infrastructure (OCI) Cloud ShellコンソールでSSHユーザー名とパスワードを使用して、ターミナル・コンソールを介してコンピュート・インスタンスに接続します。
-
アプローチ3: Royal TSXアプリケーションでSSH秘密キーを使用して、SSH経由でコンピュート・インスタンスのパブリックIPアドレスに接続します。
-
アプローチ4: OCI Cloud ShellでSSH秘密キーを使用して、SSH経由でコンピュート・インスタンスのプライベートIPアドレスに接続します。
-
アプローチ5: OCI Cloud ShellでSSHユーザー名とパスワードを使用して、SSH経由でコンピュート・インスタンスのプライベートIPアドレスに接続します。
-
アプローチ6: OCI BastionホストでSSH秘密キーを使用して、SSH経由でコンピュート・インスタンスのプライベートIPアドレスに接続します。
-
アプローチ7: Virtual Cloud Network (VCN)内のステップストン・コンピュート・インスタンスを使用します。
目的
- Oracle Cloud Infrastructureを使用してLinuxコンピュート・インスタンスにアクセスし、管理します。
アプローチ1: macOSターミナルを使用したSSH秘密キーを使用したコンピュート・インスタンスのパブリックIPアドレスへのSSHを介した接続
この方法では、SSHおよびOCIによって提供されるパブリックIPアドレスを使用してLinuxインスタンスに接続し、macOS端末を使用してインスタンスに直接接続します。
-
次のコマンドを実行します。
-
コマンドライン・インタフェース(CLI)を使用して、公開キーと秘密キーが格納されているフォルダに移動します。
cd Downloads cd MyFreeInstanceKeys ls -l
-
秘密キーを指定するSSHコマンドを使用してインスタンスに接続します。
-
秘密キーの権限を制限し、使用する前にアクセスが制限されていることを確認します。
chmod 600 ssh-key-2024-01-31.key
-
秘密キーを指定するSSHコマンドを使用してインスタンスに接続します。
ssh -i ssh-key-2024-01-31.key opc@xxx.xxx.xxx.229
-
次のコマンドを実行して、IPアドレスを確認します。
ip a
-
IPアドレスを確認します。
-
アプローチ2: OCI Cloud Shellコンソールを使用したSSHユーザー名とパスワードを使用した、ターミナル・コンソールを介したコンピュート・インスタンスへの接続
このアプローチは、インスタンスへのネットワーク接続がなく、SSHでログインできない場合にバックドアとして使用できます。
アプローチ2の前提条件
最初にローカルのユーザー名とパスワードを作成し、これを行うには、他の方法のいずれかを使用して秘密鍵を使用してSSHでログインする必要があります。これは、アプローチ1、3、4、5、および6で行われます。
-
秘密キーを使用してSSHでログインすると、新しいローカル・ユーザー名を作成し、その新しいユーザー名にパスワードを割り当てることができます。次のコマンドを実行します。
sudo useradd console sudo passwd console
インスタンス作成プロセスで、新しいローカル・ユーザー名とパスワードを作成することもできます。ただし、これを別のチュートリアルで示します。
アプローチ2に進む
ローカル・ユーザー名とパスワードを作成したので、OCI Cloud ShellコンソールでSSHユーザー名とパスワードを使用して、ターミナル・コンソールからコンピュート・インスタンスへの接続を続行できます。
このアプローチでは、OCIが提供するローカル・コンソールを使用してLinuxインスタンスに接続し、OCI Cloud Shellを使用してインスタンスに直接接続します。
-
OCI Cloud Shellに接続します。
- 「インスタンス」詳細ページで、下にスクロールします。
- 「コンソール接続」をクリックしてOCI Cloud Shellを起動し、コンソールに接続します。
-
「Cloud Shell接続の起動」をクリックします。
-
OCI Cloud Shellウィンドウには、パスワードではなくユーザー名のみが表示されます。
-
このユーザー名とパスワードは作成する必要があり、デフォルトでは作成されません。
- OCI Cloud Shellウィンドウが開きます。
- プロンプトにユーザー名が表示されます。
-
コンソール端末にローカルのユーザー名とパスワードを入力します。
アプローチ3: SSH秘密キーとRoyal TSXアプリケーションを使用したコンピュート・インスタンスのパブリックIPアドレスへのSSH経由の接続
このアプローチでは、SSHおよびOCIによって提供されるパブリックIPアドレスを使用してLinuxインスタンスに接続し、Royal TSXアプリケーションを使用してインスタンスに直接接続します。
-
Royal TSXアプリケーションを開き、新しいドキュメントを作成します。
- 「接続」フォルダを右クリックします。
- 「追加」をクリックします。
- 「端末」をクリックします。
-
「端末」タブで、次の情報を入力します。
- 表示名を入力します
- 「コンピュータ名」に、インスタンスのパブリックIPアドレスまたはFQDNを入力します。
- 「資格証明」をクリックします。
-
「資格証明」タブで、次の情報を入力します。
- 「資格証明」が選択されていることを確認します。
- 「ユーザー名とパスワードの指定」を選択します。
- 「ユーザー名」を入力します
- 「秘密キー・ファイル」タブを選択します。
-
「秘密キー・ファイル」タブで、次の情報を入力します。
- 「秘密キー・ファイルへのパス」を選択します。
- 「秘密キー・ファイル」のパスを選択します。
- 「適用して閉じる」をクリックします
- 新規作成接続をダブルクリックしてログインします。
ip a
コマンドを実行して、プライベートIPアドレスを確認します。
アプローチ4: OCI Cloud ShellでのSSH秘密キーを使用したコンピュート・インスタンスのプライベートIPアドレスへのSSH経由の接続
このアプローチでは、OCIが提供するOCI Cloud Shellを使用してLinuxインスタンスに接続し、プライベートIPアドレスを使用してインスタンスに接続します。
-
OCIコンソールにログインし、「OCI Cloud Shell」アイコンをクリックしてCloud Shellコンソールを開きます。
-
「クラウド・シェル」をクリックします。
「クラウド・シェル」ウィンドウが開いていることを確認します。
-
チュートリアルをスキップするには、
N
と入力します。
プライベートIPアドレスを使用してLinuxインスタンスに接続するには、クラウド・シェルがLinuxインスタンスの接続先と同じサブネットにアクセスすることが重要です。
これを行うには、クラウド・シェルをLinuxインスタンスが存在するVCNおよびサブネットに接続します。デフォルトでは、ネットワークは Publicに設定されていますが、新しいプライベートネットワークをその場で作成することによってこれを変更します。
-
「ネットワーク」をクリックし、「プライベート・ネットワーク定義リスト」を選択します。
-
「プライベート・ネットワーク定義の作成」をクリックします。
-
「プライベート・ネットワーク定義の作成」で、次の情報を入力します。
- 「名前」を入力します。
- Linuxインスタンスが存在する対応するVCNを選択します。
- Linuxインスタンスが存在するサブネットを選択します。
- 「アクティブなネットワークの使用」を選択して、プライベート・ネットワークをすぐにアクティブ化します。
- 「作成」をクリックします。
-
ネットワークのステータスが、「接続中」で新しく作成されたプライベート・ネットワークに変わります。この完了には数秒かかります。
- プライベートネットワークが接続されています。
- 「閉じる」をクリックして、プライベート・ネットワーク定義リストを閉じます。
ls-l
コマンドを実行して、ホーム・フォルダに秘密キーがないことを確認します。- 秘密キーをアップロードするには、ホイールをクリックします。
- 「アップロード」をクリックします。
- 「コンピュータから選択」をクリックします。
- 「アップロード」をクリックします。
- ローカル・コンピュータから秘密キーを選択します。
- 「開く」をクリックします。
- 前のステップで選択したキーを確認します。
- 「アップロード」をクリックします。
- アップロードが完了したことを確認します。
- 「非表示」をクリックします。
-
ls-l
コマンドを実行して秘密キーを確認します。- 秘密キーの権限を制限し、使用する前にアクセスが制限されていることを確認します。
- SSHコマンドを使用してインスタンスに接続し、秘密キーを指定します。
- 次のコマンドを実行して、IPアドレスを確認します。
- IPアドレスを確認します。
- Cloud Shellコンソールを最小化します。
-
Cloud Shellコンソールは最小化されています。「リストア」をクリックして、Cloud Shellコンソールをリストアします。
-
リストアされたCloud Shellコンソールを確認します。「X」をクリックして、「クラウド・シェル」ウィンドウを閉じます。
-
「クラウド・シェル」ウィンドウを閉じるには、「終了」をクリックします。
これで、インスタンスの概要に戻ります。
アプローチ5: OCI Cloud ShellでのSSHユーザー名とパスワードを使用したコンピュート・インスタンスのプライベートIPアドレスへのSSH経由の接続
アプローチ4では、秘密キーを使用してLinuxインスタンスにログインしています。この方法では、ユーザー名とパスワードを使用します。
-
ユーザー名を指定して次のSSHコマンドを使用してログインし、権限拒否エラーが表示されることを確認します。
ノート:ユーザー名
console
で以前に作成したものと同じユーザーを使用しました。ssh console@10.0.0.163
-
これをテストしてエラーを修正するには、新しいLinuxコンピュート・インスタンスを作成します。
秘密キーを使用してSSHでログインし、新しいLinuxインスタンスでローカルのユーザー名とパスワードを作成します。
デフォルトでは、LinuxイメージのSSH構成では、SSHを使用したユーザー名とパスワードではなく、秘密キーを使用したログインのみが許可されます。以前はユーザー名とパスワードを使用できましたが、これは直接コンソール接続によるものでした。
-
/etc/ssh/sshd_config
ファイルの設定を変更します。
-
次のコマンドを使用して、
sshd_config
ファイルを変更します。sudo more /etc/ssh/sshd_config
/etc/ssh/sshd_config
ファイルには、次の設定が含まれています。[opc@myfreeinstance2 ssh]$ sudo more /etc/ssh/sshd_config # $OpenBSD: sshd_config,v 1.103 208/04/09 20:41:22 tj Exp $ # This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. # This sshd was compiled with PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin # The strategy used for options in the default sshd_config shipped with # OpenSSH is to specify options with their default value where # possible, but leave them commented. Uncommented options override the # default value. # If you want to change the port on a SELinux system, you have to tell # SELinux about this change. # semanage port -a -t ssh_port_t -p tcp #PORTNUMBER # #Port 22 #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress :: HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_ecdsa_key HostKey /etc/ssh/ssh_host_ed25519_key # Ciphers and keying #RekeyLimit default none # This system is following system-wide crypto policy. The changes to # crypto properties (Ciphers, MACs, ...) will not have any effect here. # They will be overridden by command-line options passed to the server # on command line. # Please, check manual pages for update-crypto-policies(8) and sshd_config(5). # Logging #SyslogFacility AUTH SyslogFacility AUTHPRIV #LogLevel INFO # Authentication: #LoginGraceTime 2m PermitRootLogin yes #StrictModes yes #MaxAuthTries 6 #MaxSessions 10 #PubkeyAuthentication yes # The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2 # but this is overridden so installations will only check .ssh/authorized_keys AuthorizedKeysFile .ssh/authorized_keys #AuthorizedPrincipalsFile none #AuthorizedKeysCommand none #AuthorizedKeysCommandUser nobody # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts #HostbasedAuthentication no # Change to yes if you don't trust ~/.ssh/known_hosts for # HostbasedAuthentication #IgnoreUserKnownHosts no # Don't read the user's ~/.rhosts and ~/.shosts files #IgnoreRhosts yes # To disable tunneled clear text passwords, change to no here! #PasswordAuthentication yes #PermitEmptyPasswords no PasswordAuthentication no # Change to no to disable s/key passwords #ChallengeResponseAuthentication yes ChallengeResponseAuthentication no # Kerberos options #KerberosAuthentication no #KerberosOrLocalPasswd yes #KerberosTicketCleanup yes #KerberosGetAFSToken no #KerberosUseKuserok yes # GSSAPI options GSSAPIAuthentication yes GSSAPICleanupCredentials no #GSSAPIStrictAcceptorCheck yes #GSSAPIKeyExchange no #GSSAPIEnablek5users no # Set this to 'yes' to enable PAM authentication, account processing, # and session processing. If this is enabled, PAM authentication will # be allowed through the ChallengeResponseAuthentication and # PasswordAuthentication. Depending on your PAM configuration, # PAM authentication via ChallengeResponseAuthentication may bypass # the setting of "PermitRootLogin without-password". # If you just want the PAM account and session checks to run without # PAM authentication, then enable this but set PasswordAuthentication # and ChallengeResponseAuthentication to 'no'. # WARNING: 'UsePAM no' is not supported in RHEL and may cause several # problems. UsePAM yes #AllowAgentForwarding yes #AllowTcpForwarding yes #GatewayPorts no X11Forwarding yes #X11DisplayOffset 10 #X11UseLocalhost yes #PermitTTY yes # It is recommended to use pam_motd in /etc/pam.d/sshd instead of PrintMotd, # as it is more configurable and versatile than the built-in version. PrintMotd no #PrintLastLog yes #TCPKeepAlive yes #PermitUserEnvironment no #Compression delayed #ClientAliveInterval 0 #ClientAliveCountMax 3 #UseDNS no #PidFile /var/run/sshd.pid #MaxStartups 10:30:100 #PermitTunnel no #ChrootDirectory none #VersionAddendum none # no default banner path #Banner none # Accept locale-related environment variables AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE AcceptEnv XMODIFIERS # override default of no subsystems Subsystem sftp /usr/libexec/openssh/sftp-server # Example of overriding settings on a per-user basis #Match User anoncvs # X11Forwarding no # AllowTcpForwarding no # PermitTTY no # ForceCommand cvs server [opc@myfreeinstance2 ssh]$
-
ユーザー名とパスワードを使用してSSHでログインできるように、ファイルに次のコードを追加します。
PasswordAuthentication yes
-
ファイルの保存後。次のコマンドを実行し、LinuxインスタンスでSSHサーバーを再起動します。
sudo systemctl restart sshd
-
OCI Cloud Shellを開きます。
- Cloud Shellが、Linuxイメージが使用可能なプライベート・ネットワークにまだ接続されていることを確認します。
- ユーザー名を使用してSSHコマンドでログインします。
- 続行するには、
yes
と入力します。 - ログインするパスワードを入力します。
アプローチ6: OCI BastionホストでSSH秘密キーを使用して、SSH経由でコンピュート・インスタンスのプライベートIPアドレスに接続します
このアプローチでは、OCI Bastionサービスを使用してLinuxインスタンスに接続し、そこからトンネル接続を介してプライベートIPアドレスを使用してインスタンスに接続します。
-
OCI Bastionサービスを使用する前に、まずOCI Bastionサービスを作成する必要があります。
- OCIコンソールを開き、「ハンバーガー」メニューをクリックします。
- 「アイデンティティとセキュリティ」をクリックします。
- 「要塞」をクリックします。
-
「要塞の作成」をクリックし、次の情報を入力します。
- 「要塞名」を入力します。
- 要塞サービスでアクセスするVCNを選択します。
- 要塞サービスでアクセスするサブネットを選択します。
- 要塞サービスに許可するIPアドレスまたはCIDRを入力します。このチュートリアルでは、ISP接続のホームIPアドレスを使用します。
- 「要塞の作成」をクリックします。
-
新しく作成した要塞サービスをクリックします。
-
ステータスが「作成中」に設定されていることを確認します。
- 数秒後に、ステータスが ACTIVEに変更されていることがわかります。
- 「セッションの作成」をクリックして、管理するLinuxインスタンスのセッションを作成します。
- 「セッション・タイプ」に「管理対象SSHセッション」を選択します。
- 「ユーザー名」を入力します
- 要塞サービスを介して接続するLinuxコンピュート・インスタンスを入力します。
- この特定のセッションに対して構成する公開キーを選択します。
- 公開鍵が選択されていることを確認します。
- 「セッションの作成」をクリックします。
- 次のエラーに注意してください: 管理対象SSHセッションを作成するには、ターゲット・インスタンスで要塞プラグインを有効にする必要がありますが、プラグインは無効になっています。これは、要塞を使用してLinuxインスタンスに接続するには、ソフトウェアまたはプラグインの一部をLinuxインスタンスにインストールする必要があり、プラグインを有効にする必要があることを意味します。
- このプラグインをLinuxインスタンスで有効にし、OCIコンソールでハンバーガー・メニューをクリックします。
-
「インスタンス」をクリックします。
-
Linuxコンピュート・インスタンスを選択します。
-
下へスクロール
-
要塞プラグインが無効に設定されていることを確認します。
-
要塞プラグインを有効にするには、指示に従います。
- 「切替え」をクリックして、要塞プラグインを有効にします。
-
ステータスが「実行中」になるまで待ちます。
ノート:トグルを「無効」から「有効」に変更すると、ステータスが実際に変更されるまでに1分かかることがあります。これは、バックグラウンドではプラグインをダウンロード、インストールおよび起動する必要があるため、時間がかかるためです。
- 要塞プラグインでセッションを再作成します。OCIコンソールで、ハンバーガー・メニューをクリックします。
- 「アイデンティティとセキュリティ」をクリックします。
- 「要塞」をクリックします。
-
「要塞」をクリックします。
-
「セッションの作成」をクリックして、管理するLinuxインスタンスのセッションを作成します。
- 「セッション・タイプ」に「管理対象SSHセッション」を選択します。
- 「ユーザー名」を入力します
- 要塞を介して接続するLinuxコンピュート・インスタンスを選択します。
- 「SSHキー・ファイルの選択」を選択します。
- この特定のセッションに対して構成する公開キーを選択します。
- 公開鍵が選択されていることを確認します。
- 「セッションの作成」をクリックします。
-
状態が「作成中」であることを確認します。
- セッションが作成されると、状態が「アクティブ」になります。
- セッションのデフォルトの時間は3時間です。3時間後、セッションは自動的に停止され、セッションはもう使用できなくなり、新しいセッションを作成する必要があります。
- 「ヘルプ」メニューを別の場所にドラッグ・アンド・ドロップして、セッション・メニューにアクセスできるようにします。
- 3つのドットをクリックして、セッション・メニューにアクセスします。
- 「SSHコマンドのコピー」を選択します。
-
SSHコマンドをテキスト・エディタに貼り付け、
<privatekey>
プレースホルダを確認します。<privatekey>
プレースホルダを秘密キーの名前に置き換えます。要塞セッションの作成時に、使用された公開キーに対応する秘密キーを使用します。例
-
元のコマンド。
ssh -i <privateKey> -o ProxyCommand="ssh -i <privateKey> -W %h:%p -p 22 ocid1.bastionsession.oc1.eu-amsterdam-1.amaaaaaaccocy5aapmrn66fdxdlg7lhefofhndmeq2ir6owe5afm2v7oghiq@host.bastion.eu-amsterdam-1.oci.oraclecloud.com" -p 22 opc@10.0.0.176
-
コマンドが変更されました。
ssh -i ssh-key-2024-01-31.key -o ProxyCommand="ssh -i ssh-key-2024-01-31.key -W %h:%p -p 22 ocid1.bastionsession.oc1.eu-amsterdam-1.amaaaaaaccocy5aapmrn66fdxdlg7lhefofhndmeq2ir6owe5afm2v7oghiq@host.bastion.eu-amsterdam-1.oci.oraclecloud.com" -p 22 opc@10.0.0.176
-
-
要塞セッションを介してLinuxインスタンスに接続します。
- macOS端末を使用して秘密キーが格納されているコンピュータから追加された秘密キーを使用して、完全コピーされたコマンドを使用して、要塞セッションを介してLinuxインスタンスに接続します。
- 「はい」を入力して続行します。
- 「はい」を入力して続行します。
- 次のコマンドを実行して、IPアドレスを確認します。
- IPアドレスを確認します。
-
OCIコンソールで要塞セッション設定を開きます。
- 3つのドットをクリックして、セッション・メニューにアクセスします。
- 「セッションの削除」を選択します。
- セッション名を入力して、セッションの削除を確認します。
- 「削除」をクリックします。
-
「削除中」の状態を確認します。
セッションが削除されると、状態は「削除済」に設定されます。
セッションが削除されると、macOS端末で開いたSSHセッションも終了します。
要塞プラグインが存在しません。
このアプローチでは、すでに実行中のLinuxインスタンスで要塞プラグインを有効にしています。また、最初からインスタンスを作成するときに要塞プラグインを有効にすることもできます。
「Advanced」オプションを選択し、次のオプションを選択して、インスタンスの作成を続行します。
- 「Oracle Cloudエージェント」をクリックします。
- 「要塞」を選択します。
最初から新しいイメージを作成し、インスタンスが作成された直後にBastionプラグインのステータスを確認し、ステータスがRUNNING*の場合、Plugin Bastion not present...というエラー・メッセージが表示されることがあります。
ステータスが実際に変更されるまでに1分かかる場合があります。バックグラウンドではプラグインをダウンロード、インストールおよび起動する必要があるため、これには時間がかかります。ステータスが「実行中」に変更されるまで5分間待機します。
ステータスが変更されておらず、メッセージがPlugin Bastion not present...のままの場合、Linuxインスタンスがインターネットに接続して要塞プラグインをダウンロードできない可能性があります。VCN内のインターネット、NATおよびサービス・ゲートウェイのトラブルシューティングを行い、インスタンスがインターネットにアクセスできることを確認します。
アプローチ7: Virtual Cloud Network内のステップストーン・コンピュート・インスタンスの使用
このアプローチでは、ステップストーンまたは専用の要塞として使用できる専用のLinuxインスタンスを作成し、そこから他のLinuxインスタンスにアクセスします。オラクルでは、Oracleから無料で提供されるOCI Bastionサービスの使用に比べて、追加コストがかかる可能性があるリソースを使用しています。
これは前述のアプローチの組合せであるため、このアプローチの詳細は説明しません。
次のステップ
このチュートリアルでは、OCI内のLinuxインスタンスにアクセスして管理するためのすべての可能なアプローチについて説明します。インターネットおよびコンソールからLinuxインスタンスに直接アクセスすることも、OCI Cloud Shell、Bastion、専用インスタンスなどの中間ステップストンを使用することもできます。
また、秘密キーまたは公開キーとローカルのユーザー名とパスワードを使用してSSHでインスタンスに接続する方法も示しました。
考えられるすべての接続アプローチを次の図に示します。
承認
- 作成者 - Iwan Hoogendoorn (OCIネットワーク・スペシャリスト)
その他の学習リソース
docs.oracle.com/learnの他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。
製品ドキュメントは、Oracle Help Centerを参照してください。
Access and Manage a Linux Compute Instance using Oracle Cloud Infrastructure
F93489-02
August 2024