附註:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱 Oracle Cloud Infrastructure Free Tier 入門。
- 它使用 Oracle Cloud Infrastructure 證明資料、租用戶及區間的範例值。完成實驗室時,請將這些值取代為您雲端環境特定的值。
使用 Oracle Cloud Infrastructure 存取及管理 Linux Compute 執行處理
簡介
在本教學課程中,我們將說明如何存取 Linux 執行處理的主控台來安裝應用程式或執行管理作業。
連線方法
您可以使用多種方式存取 Linux 運算執行處理。我們列出了最常見的方法。
-
方法 1:使用 SSH 私密金鑰和 macOS 終端機,透過 SSH 連線至運算執行處理公用 IP 位址。
-
方法 2:使用 Oracle Cloud Infrastructure (OCI) Cloud Shell 主控台的 SSH 使用者名稱和密碼,透過終端機主控台連線至運算執行處理。
-
約 3:使用 SSH 私密金鑰搭配 Royal TSX 應用程式,透過 SSH 連線至運算執行處理公用 IP 位址。
-
Approach 4:使用 OCI Cloud Shell 的 SSH 私密金鑰,透過 SSH 連線至運算執行處理私密 IP 位址。
-
約 5:使用 OCI Cloud Shell 的 SSH 使用者名稱和密碼,透過 SSH 連線至運算執行處理的專用 IP 位址。
-
約 6:使用具備 OCI 堡壘主機的 SSH 私密金鑰,透過 SSH 連線至運算執行處理私密 IP 位址。
-
核准 7:在虛擬雲端網路 (VCN) 內使用 Stepstone 運算執行處理。
目標
- 使用 Oracle Cloud Infrastructure 存取和管理 Linux 運算執行處理。
方法 1:使用 SSH 私密金鑰搭配 macOS 終端機,透過 SSH 連線至運算執行處理公用 IP 位址
在此方法中,我們將使用 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:使用 SSH 使用者名稱與密碼搭配 OCI Cloud Shell 主控台,透過終端機主控台連線至運算執行處理
如果您的執行處理沒有任何網路連線,而且無法使用 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:使用具備 Royal TSX 應用程式的 SSH 私密金鑰,透過 SSH 連線至運算執行處理公用 IP 位址
在此方法中,我們將使用 SSH 和 OCI 提供的公用 IP 位址連線至 Linux 執行處理,以使用 Royal TSX 應用程式直接連線至執行處理。
-
開啟 Royal TSX 應用程式並建立新文件。
- 以滑鼠右鍵按一下連線資料夾。
- 按一下新增。
- 按一下終端機。
-
在終端機頁籤中,輸入下列資訊。
- 輸入顯示名稱。
- 在電腦名稱中輸入執行處理的公用 IP 位址或 FQDN。
- 按一下憑證。
-
在證明資料頁籤中,輸入下列資訊。
- 確定已選取證明資料。
- 選取指定使用者名稱和密碼。
- 輸入使用者名稱。
- 選取私密金鑰檔案頁籤。
-
在私密金鑰檔案頁籤中,輸入下列資訊。
- 選取 Path to Private Key File 。
- 選取私密金鑰檔案路徑。
- 按一下套用並關閉。
- 按兩下新的建立連線以登入。
- 執行
ip a
命令以複查專用 IP 位址。
方法 4:使用具備 OCI Cloud Shell 的 SSH 私密金鑰,透過 SSH 連線至運算執行處理私密 IP 位址
在此方法中,我們將使用 OCI 提供的 OCI Cloud Shell 連線至 Linux 執行處理,並使用專用 IP 位址連線至執行處理。
-
登入 OCI 主控台,然後按一下 OCI Cloud Shell 圖示以開啟 Cloud Shell 主控台。
-
按一下 Cloud Shell 。
確定 Cloud Shell 視窗已開啟。
-
輸入
N
以立即略過教學課程。
為了使用專用 IP 位址連線至 Linux 執行處理,請務必讓 Cloud Shell 存取與 Linux 執行處理連線的相同子網路。
我們可以將 Cloud Shell 插入至 Linux 執行處理所在的相同 VCN 和子網路,藉此達到此目的。依照預設,網路會設為 Public ,但是我們會透過即時建立新的專用網路來變更這個值。
-
按一下網路,然後選取專用網路定義清單。
-
按一下建立專用網路定義。
-
在建立專用網路定義中,輸入下列資訊。
- 輸入名稱。
- 選取 Linux 執行處理所在的對應 VCN 。
- 選取 Linux 執行處理所在的子網路。
- 選取使用使用中網路以立即啟用專用網路。
- 按一下建立。
-
請注意,網路的狀態將變更為連線新建立的專用網路。這將需要幾秒鐘的時間才能完成。
- 專用網路已連線。
- 按一下關閉以關閉專用網路定義清單。
- 執行
ls-l
命令,並查看本位目錄資料夾中沒有私密金鑰。 - 若要上傳私密金鑰,請按一下操控盤。
- 按一下上傳。
- 按一下從您的電腦選取。
- 按一下上傳。
- 從本機電腦選取私密金鑰。
- 按一下開啟。
- 複查上一個步驟中選取的金鑰。
- 按一下上傳。
- 請確定上傳已完成。
- 按一下隱藏。
-
執行
ls-l
命令來檢查私密金鑰。- 限制私密金鑰的權限,並確定已限制存取才能使用。
- 使用 SSH 命令連線至執行處理並指定私密金鑰。
- 執行下列指令來驗證 IP 位址。
- 驗證 IP 位址。
- 最小化 Cloud Shell 主控台。
-
Cloud Shell 主控台已最小化。按一下回復以回復 Cloud Shell 主控台。
-
複查已回復的 Cloud Shell 主控台。按一下 X 以關閉 Cloud Shell 視窗。
-
按一下結束以關閉 Cloud Shell 視窗。
現在,我們已回顧實例概觀。
方法 5:使用 SSH 使用者名稱和 OCI Cloud Shell 密碼,透過 SSH 連線至運算執行處理專用 IP 位址
在「方法 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 堡壘主機的 SSH 私密金鑰,透過 SSH 連線至運算執行處理私密 IP 位址
在此方式中,我們將使用 OCI 堡壘主機服務連線至 Linux 執行處理,並透過通道連線使用專用 IP 位址從該執行處理連線至執行處理。
-
在使用 OCI 堡壘主機服務之前,必須先建立 OCI 堡壘主機服務。
- 開啟 OCI 主控台,然後按一下漢堡功能表。
- 按一下識別與安全。
- 按一下堡壘主機。
-
按一下建立堡壘主機,然後輸入下列資訊。
- 輸入堡壘主機名稱。
- 選取要與堡壘主機服務存取的 VCN。
- 選取要與堡壘主機服務存取的子網路。
- 輸入允許用於堡壘主機服務的 IP 位址或 CIDR。在此自學課程中,我們使用 ISP 連線的本位目錄 IP 位址。
- 按一下建立堡壘主機。
-
按一下新建立的堡壘主機服務。
-
請注意,狀態會設為 CREATING 。
- 幾秒鐘之後,我們就會看到狀態已變更為 ACTIVE 。
- 按一下建立階段作業,即可為要管理的 Linux 執行處理建立階段作業。
- 選取階段作業類型 (Session Type) 作為受管理 SSH 階段作業 (Managed SSH session) 。
- 輸入使用者名稱。
- 輸入要透過堡壘主機服務連線的 Linux 運算執行處理。
- 選取要為此特定階段作業設定的公開金鑰。
- 確定已選取公開金鑰。
- 按一下建立階段作業 (Create Session) 。
- 請注意下列錯誤:若要建立受管理的 SSH 階段作業,目標執行處理上必須啟用堡壘主機 Plugin,但 Plugin 已停用,這表示若要使用堡壘主機連線至 Linux 執行處理,必須在 Linux 執行處理上安裝軟體或 Plugin,而且必須啟用該 Plugin。
- 讓我們在 Linux 執行處理和 OCI 主控台上啟用此外掛程式,按一下漢堡功能表。
-
按一下執行處理。
-
選取 Linux 運算執行處理。
-
向下捲動。
-
請注意,堡壘主機外掛程式已設為停用。
-
若要啟用堡壘主機 Plugin,請依照指示進行。
- 按一下切換即可啟用堡壘主機 Plugin。
-
等待直到狀態顯示執行中。
注意:當我們將切換從停用變更為啟用時,可能需要一分鐘的時間才能變更狀態,因為在背景中,需要下載、安裝及啟動外掛程式,而且這需要一些時間。
- 讓我們重新建立堡壘主機 Plugin 上的階段作業。在 OCI 主控台上,按一下漢堡功能表。
- 按一下識別與安全。
- 按一下堡壘主機。
-
按一下堡壘主機。
-
按一下建立階段作業,即可為要管理的 Linux 執行處理建立階段作業。
- 選取階段作業類型 (Session Type) 作為受管理 SSH 階段作業 (Managed SSH session) 。
- 輸入使用者名稱。
- 選取要透過堡壘主機連線的 Linux 運算執行處理。
- 選取選擇 SSH 金鑰檔。
- 選取要為此特定階段作業設定的公開金鑰。
- 確定已選取公開金鑰。
- 按一下建立階段作業 (Create Session) 。
-
請注意,狀態為建立中。
- 建立階段作業時,請參閱狀態為作用中。
- 請注意,階段作業的預設時間為 3 小時。3 小時之後,階段作業將會自動停止,我們將無法再使用此階段作業,我們需要建立新的階段作業。
- 將 help 功能表拖放到另一個位置,以便我們可以存取階段作業功能表。
- 按一下三個點以存取階段作業功能表。
- 選取複製 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 主控台中開啟堡壘主機階段作業設定值。
- 按一下三個點以存取階段作業功能表。
- 選取刪除階段作業。
- 輸入階段作業名稱以確認階段作業移除。
- 按一下刪除。
-
複查刪除中的狀態。
刪除階段作業時,狀態會設為已刪除。
當階段作業被刪除時,我們透過 macOS 終端機開啟的 SSH 階段作業現在也會一併終止。
堡壘主機 Plugin 不存在。
在此方法中,我們已在已經執行的 Linux 執行處理上啟用堡壘主機 Plugin。從一開始建立執行處理時,也可以啟用堡壘主機 Plugin。
選取「進階」選項,選取下列選項並繼續建立執行處理。
- 按一下 Oracle Cloud 代理程式。
- 選取堡壘主機。
當我們從頭開始建立新映像檔,並在建立執行處理之後立即檢查堡壘主機 Plugin 的狀態,而且狀態為執行 * 時,我們可能會見到含有外掛程式堡壘主機不存在 ... 的錯誤訊息。
實際上變更狀態可能需要一分鐘的時間。因為在背景中,外掛程式需要下載、 安裝與啟動,這會花一點時間 。等待 5 分鐘,直到狀態變更為執行中為止。
當狀態未變更且訊息維持 Plugin 堡壘主機不存在 ... 時,Linux 執行處理可能無法連線網際網路以下載堡壘主機 Plugin。對 VCN 中的網際網路、NAT 和服務閘道進行疑難排解,以確保您的執行處理能夠存取網際網路。
方法 7:在虛擬雲端網路中使用 Stepstone 運算執行處理
在此方法中,我們將會建立一個專用的 Linux 執行處理,供我們作為某種步驟或專用堡壘主機使用,我們將從該處存取其他 Linux 執行處理。與使用 Oracle 免費提供的 OCI 堡壘主機服務相比,我們使用的資源可能會收取額外費用。
我們不會深入了解此方法,因為這是我們先前解釋過的方法的組合。
接下來的步驟
在本教學課程中,我們擁有在 OCI 中存取和管理 Linux 執行處理的所有可能方法。我們可以直接從網際網路和主控台存取 Linux 執行處理,也可以使用 OCI Cloud Shell、堡壘主機或專用執行處理等中繼步驟。
我們也將顯示如何使用私密金鑰或公開金鑰以及本機使用者名稱和密碼,以 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
F93493-02
August 2024