5
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【OCI】無料でLinuxサーバを立ち上げてSSH接続してみた

Last updated at Posted at 2024-10-16

以前はWebアプリの開発自習用にHeroku1を使用していたのですが、悪意のあるユーザによる不正利用が多発した為に個人の利用であっても有償となってしまいました。
以降はローカルでプログラミングしていたものの、久しぶりに公開できるWebアプリを作りたいと思い立ち、無償でお気軽に使えるパブリッククラウドのLinuxはないかしらと軽く調べてみたところ、Oracle Cloud Infrastructure(OCI)のAlways Freeサービスで提供されていて、弊社内でも他部署でOCIに関わるサービスを扱っていることもあり、OCIのお勉強も兼ねて環境を作ってみることにしました。

実施環境

  • Mac OS
    Windowsの場合、SSH接続手順が異なるのでご容赦ください。

必要なもの

  • メールアドレス
    →アカウント作成時に必要です。
  • クレジットカード
    →無償利用でもクレジットカード登録が必要になります。
  • スマートフォン
    →多要素認証で使用します。

アカウント作成

所要時間 : 10分程度
以下 @fufukuku さんの記事の「個人アカウント作成」〜「設定1:MFAの設定」を実施してください。
2024年10月時点でも手順に特に変わりはありませんでした。

仮想マシン(VM)起動

所要時間 : 5分程度

  1. OCIサインイン
    下記URLからOCIのホーム画面にサインインします。
    https://cloud.oracle.com/home

  2. VMインスタンス作成
    下図、リソースの起動>VMインスタンスの作成をクリックします。
    SS001.png

  3. VMインスタンス設定入力
    下図、インスタンスの名前に適当な名称を設定します。
    SS002.png
    コンパートメントはデフォルトのままでOK。
    その他、「配置」「セキュリティ」等も全てデフォルトのままでOK。

  4. 秘密鍵ダウンロード
    SSH接続できるよう、下図「秘密キーの保存」ボタンをクリックしてダウンロードします。
    SS003.png

  5. VM作成
    画面下部、下図の「作成」ボタンをクリックします。
    SS004.png

  6. 待機
    VMの状態が「プロビジョニング中」から下図「実行中」になるまで待機します。
    早ければ30秒程度で切り替わります。
    SS005.png

  7. VMのパブリックIPアドレス確認
    下図赤枠、インスタンス情報>プライマリVNICにパブリックIPv4アドレスが表示されるので控えておきます。
    SS006.png

以上でVMの作成は完了。

デフォルトユーザでのSSH接続

まずは前項でダウンロードした秘密鍵を利用してOCI上のVMにSSH接続してみます。
秘密鍵のパーミッションを以下コマンドで変更します。
※秘密鍵の名称は「oci-private.key」にリネームしています。

zsh
$ chmod 400 oci-private.key

次に、VMにデフォルトで用意されているopcユーザでSSH接続を試みます。
※一部の情報を「*」で伏せています

zsh
$ ssh opc@138.***.***.*** -i oci-private.key 
The authenticity of host '138.***.***.*** (138.***.***.***)' cant be established.
ED25519 key fingerprint is SHA256:******************************************.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '138.***.***.***' (ED25519) to the list of known hosts.
Activate the web console with: systemctl enable --now cockpit.socket

[opc@oci-sample ~]$ 

無事に接続できました。

SSHパスワード認証接続用ユーザ作成

あとは他のLinuxディストリビューションと大体同じ感じです。
まずはrootユーザに切り替えて、パスワード認証接続用のユーザを作ります。
下記例では「develop」ユーザを作成しています。

sh
[opc@oci-sample ~]$ sudo su -
[root@oci-sample ~]# useradd develop
[root@oci-sample ~]# passwd develop
Changing password for user develop.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

次にdevelopユーザで接続する際にパスワード認証を許容するようsshdの設定を変更します。

sh
[root@oci-sample ~]# vi /etc/ssh/sshd_config

設定ファイルの 末尾 に下記記載を追加してファイルを保存します。

vi
# developユーザのPasswordAuthenticationをOverride
Match User develop
    PasswordAuthentication yes

sshd_configの"Match"が有効となる範囲は「次の"Match"キーワードが出現するまで」なので、原則ファイルの途中に記述しないようにしましょう。

上記設定を保存したら、sshdを再起動。

sh
[root@oci-sample ~]# /sbin/service sshd restart

コマンド実行後、次のようなエラーメッセージが出力されないことを必ず確認しましょう。エラーを無視したままセッションを切断すると、リモートからは再度SSH接続できなくなります。(それでもOCIのWeb画面からなら接続できる模様)
<例>
Job for sshd.service failed because the control process exited with error code.
See "systemctl status sshd.service" and "journalctl -xe" for details.

下記コマンドにてdevelopユーザでSSH接続を試みます。

zsh
$ ssh develop@138.***.***.***            
develop@138.***.***.***s password: 
Activate the web console with: systemctl enable --now cockpit.socket
[develop@oci-sample ~]$ 

developユーザで鍵なしでも接続できました。

宣伝

冒頭でも少し触れましたが、株式会社エム・イー・シーではOracle Cloudの導入サービスを提供しています。
クラウド化でお悩みやご相談などございましたら、下記弊社サイトから是非ご連絡ください。

  1. コンテナベースのPaaS。GitとPostgreSQLを備え、JavaやPHP、Pythonなどの言語で開発したWebアプリをすぐにデプロイ・公開できるサービス。
    https://jp.heroku.com

5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?