17
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

スマホでバイブコーディングできる時代!というのを以下の記事で見て、WindowsではなくMacで実装したので備忘録として残します。

目次

実現したことのイメージ図

ざっくりとですがこのようなイメージで実現しました。

image.png

手順

1. Gemini CLI(Claude Code)のインストール

ここではインストールの細かい手順は省かせていただきます。
Gemini CLIを入れる場合は、公式のREADMEを参考にインストールしてください。

英語でわかりづらい場合は、以下の記事が参考になります。

Claude Codeを使いたい場合は以下をご覧ください。

2. TailscaleでVPN接続(Mac側)

にてアカウントを作成すると、接続手順が表示されるので手順を進めていきます。

3. TailscaleでVPN接続(iPhone側)

iPhoneでも同様にTailscaleアプリをAppStoreからインストールし、同じアカウントでログインします。
Macに表示された手順を進めていくと、以下のように接続成功という画面が出てきます。
こちらが出てきたら接続完了です。

image.png

4. Mac側でSSHサーバーを立てる

4‑1. リモートログインをオンにする

システム設定 > 一般 > 共有 > リモートログイン をオンにします。
※スマホバイブコーディングをしないときは安全のためオフにしています。

image.png

CLI 派の方は以下でも可能です。

sudo systemsetup -setremotelogin on

4‑2. 鍵認証の準備

4-2‑1. Macで鍵ペアを作成する

以下のコマンドでMac秘密鍵と公開鍵を作成していきます。

ssh-keygen -t ed25519 -C "iphone" -f ~/.ssh/iphone_ed25519

~/.ssh/iphone_ed25519は秘密鍵、~/.ssh/iphone_ed25519.pubは公開鍵として作成されます。

4‑2‑2. 公開鍵をMacに登録する

以下のコマンドで、公開鍵をMacに登録していきます。

mkdir -p ~/.ssh
chmod 700 ~/.ssh
cat ~/.ssh/iphone_ed25519.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

4‑2‑3. 秘密鍵をiPhoneにコピーする

iphone_ed25519をエアドロなどでiPhoneのファイルに保存します。
この鍵は、後でTermiusにインポートするときに使用します。

4‑3. sshd_configを最小限ハードニング

/etc/ssh/sshd_config に以下を追加します。

Port 22
AddressFamily inet
ListenAddress ***.**.**.**    # MacのTailscaleのIPに合わせる
PasswordAuthentication no
PermitRootLogin prohibit-password

変更を反映します。

sudo launchctl kickstart -k system/com.openssh.sshd

今回は省きますが、Tailscale ACLで22番を絞るとさらに安心です。

5. iPhoneからTermiusでSSH接続を行う

5‑1. TermiusをAppStoreでインストールする

App Storeで、Termiusを検索してインストールします。(AndroidはGoogleStore)

5‑2. ホストを登録する

TermiusでHostsの+ボタンからNewHostを選択して以下の値を入れています。

フィールド メモ
Label 任意(例:Mac) 一覧での表示名
Address ***.**.**.** MacのTailscaleのIP
Port 22 デフォルトのまま
Username macOSのユーザ名 hoshi7_n
Authentication SSH Keyを選択 エアドロで送った鍵をインポートして選択します

今回鍵の名前は違っていますが、以下の画像のようになっていればOKです。

image.png

image.png

保存すると、Hostsの一覧にアイコンが追加されます。これで準備完了です!

5‑3. 接続&Gemini CLI実行

Hosts一覧で作成したホストをタップすると、数秒でシェルが開くので、あとはPCから実行するときと同様に、Geminiなら以下のコマンドを入力すると実行されます。

npx https://github.com/google-gemini/gemini-cli

IMG_6776.PNG

もちろん以下を実行すれば、Claude Codeも動きます。

claude

IMG_6777.PNG

おわりに

外で指示して家に帰ったらアプリが出来上がっている!ということが実現可能な時代なのか、、と試して思いました。まあ開発するときは基本家なので、試してはみたもののいつ使おうか悩んでいます。笑
最後までご覧いただきありがとうございました!

参考

補足

AmazonQもいけるかなと思ってq chatを実行したのですが、ダメでした。権限周りかもしれないです。この辺は調べてみようと思います。

17
6
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
17
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?