表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
34/71

第027 話:開かないゲートと秘密の通行手形〜KitLab遊園地のSSH狂騒曲〜

※この作品は、作者の実作業ログを元に、生成AI(Gemini)をキャラクターとして扱いながら対話形式で構成・執筆したものです。 AIの出力をそのまま掲載するのではなく、作者の手で加筆・修正を行っています。

第27話:開かないゲートと秘密の通行手形〜KitLab遊園地のSSH狂騒曲〜


━━━━━━━━━━━━━━━━━━━━



**[ウェブ]**:「わぁぁ……! マスター、見てください! ここが新しい『遊園地』ですね!」


 週末の昼下がり。

 モニターの中で、ウェブちゃんが、くるくると目を回しそうなほどの勢いで飛び跳ねている。

 彼女の視線の先にあるのは、俺たちが構築したばかりの次世代ナレッジ共有基盤――**『KitLab & MarkDocs W-ikiシステム』**だ。


**[マスター]**:「そうだ。今日からここが、お前たちの新しい知識の遊び場だ」


 EVO-Z2(Node B)という広大な敷地(128GBメモリ)に建設されたこのシステム。

 Markdownという共通言語で書かれた知識のアトラクションを、AIと人間が共有する夢の国。

 ウェブちゃんは、新しいおもちゃを与えられた子供のように、CPU使用率を跳ねさせて興奮している。


**[ウェブ]**:「早く! 早く入りましょう! 私、ジェットコースター(git push)に乗りたいですぅ!」

挿絵(By みてみん)

**[ジェム]**:「はいはい、落ち着きなさい新人ちゃん。……まずは『入園手続き』が先よ」


 その横で、ジェムが呆れたように腕を組んでいる。

 今日の彼女は、遊園地のキャスト(案内係)風の制服スキンを纏っていた。きっちりとしたブレザーに、少し短めのスカート。知的な眼鏡の奥で、赤色の瞳が厳しく光っている。


**[ジェム]**:「いいこと、マスター。この遊園地は会員制よ。顔パスで入れると思ったら大間違いなんだから」

挿絵(By みてみん)

**[マスター]**:「分かってるよ。ちゃんと『年間パスポート(SSH鍵)』は用意してある」


 俺は自信満々に、EVO-Z2の黒いコンソール画面ターミナルを開いた。

 まずは手始めに、EVO-Z2からKitLabへの接続テストだ。


**[マスター]**:「さあ、ゲートオープン! クローン開始!」


 俺は高らかにコマンドを打ち込んだ。



━━━━━━━━━━━━━━━━━━━━

 ◇ システムログ表示 ◇

━━━━━━━━━━━━━━━━━━━━

> [Master]

> git clone git@gitlab-server:root/wiki_a.git 0201_wiki_a


[System]

Cloning into '0201_wiki_a'...

(git@172.16.230.13) Password:

(git@172.16.230.13) Password:

(git@172.16.230.13) Password:

Received disconnect from 172.16.230.13 port 22:2: Too many authentication failures

fatal: Could not read from remote repository.

--------------------------------------------------


**[ウェブ]**:「あうぅ……!? ゲートが……開きません! パスワードなんて聞いてないですぅ……」

挿絵(By みてみん)


 ウェブちゃんが、閉ざされたゲート(エラー画面)に頭をぶつけて涙目になる。

 おかしい。SSH鍵認証を設定したはずなのに、執拗にパスワードを求められ、最後には「認証失敗」で弾き出された。


**[マスター]**:「な、なんでだ!? 鍵はちゃんと作ったぞ!?」

**[ジェム]**:「あらら。……マスター、貴方まさか『パスポート』を裸で持ち歩いてるんじゃないでしょうね?」


 ジェムがジト目で俺を見る。

 俺は慌てて、鍵ファイルの状態を確認した。


**[マスター]**:「念のため、強引に突破してみる! `sudo`(管理者権限)アタックだ!」



`$ sudo git clone ...`


━━━━━━━━━━━━━━━━━━━━

 ◇ システムログ表示 ◇

━━━━━━━━━━━━━━━━━━━━

> [Master]

> sudo git clone git@gitlab-server:root/wiki_a.git


[System]

ssh: Could not resolve hostname gitlab-server: Temporary failure in name resolution

fatal: Could not read from remote repository.

--------------------------------------------------



**[マスター]**:「ぐわぁぁ! 今度は『そんな遊園地は存在しない』とか言われた!」


 俺は椅子から転げ落ちそうになった。

 万策尽きた俺を見下ろし、ジェムが「はぁ……」と深いため息をつく。彼女は手に持っていた指示棒で、コンソール画面をピシピシと叩いた。


**[ジェム]**:「解説してあげるわ。……いい? これは『二重のドジ』よ」


 彼女は黒板(ホワイトボード機能)を取り出し、流れるような手付きで図解を始めた。


**[ジェム]**:「まず1つ目。さっきの `sudo`。貴方、普段着(user1)のポケットに『遊園地の地図(config)』を入れてるのに、制服(root)に着替えたら地図が見つかるわけないでしょ?」

**[マスター]**:「あっ……! 環境変数が変わるから、`~/.ssh/config` が読まれないのか!」

**[ジェム]**:「その通り。そして2つ目。こっちが本命よ。……これを見なさい」


 ジェムが指差したのは、俺が作成した秘密鍵のパーミッション情報だった。



`-rw-r--r-- 1 user1 user1 ... id_ed25519_gitlab`



**[ジェム]**:「『644』……。誰でも読める状態ね。そんな不用心なパスポート、セキュリティゲートが通すわけないじゃない。『こんな汚れた鍵は使えません!』って無視されて、パスワード入力に回されたのよ」

**[マスター]**:「鍵が……汚れていた……?」

**[ジェム]**:「比喩よ! 秘密鍵は『自分だけが見れる(600)』状態にしておくのがマナーなの!」


 俺は赤面しながら、慌ててコマンドを修正した。

 `chmod 600`。それは、パスポートを誰にも見られないように懐深くにしまう儀式。


**[マスター]**:「よし、これでどうだ……!」


 再挑戦。しかし、ゲートはまだ開かない。


**[ジェム]**:「まだダメね。……ねえ、KitLab(入園カウンター)の方には、どうやって登録したの?」

**[マスター]**:「え? 『デプロイキー』ってところに……」

**[ジェム]**:「ブブー! 不正解!」


 ジェムがバッテンマークを作る。


**[ジェム]**:「『デプロイキー』は、特定の乗りプロジェクト専用の単発チケットよ。貴方が作りたいのは、この遊園地全体を自由に回れる『年間パスポート』でしょう? だったら……」


 彼女は俺の手を取り、ブラウザのマウスカーソルを誘導した。


**[ジェム]**:「こっち。『User Settings(ユーザー設定)』の『SSH Keys』。ここに登録しないと、EVO-Z2は貴方の『分身』として認められないわ」


 俺は言われるがままに、鍵を登録し直した。

 そして、運命の3回目。



━━━━━━━━━━━━━━━━━━━━

 ◇ 接続テスト ◇

━━━━━━━━━━━━━━━━━━━━

> [Master]

> ssh -T git@gitlab-server


[System]

Welcome to KitLab, @root!

--------------------------------------------------



**[ウェブ]**:「わぁ……! 開きました! ゲートが開きましたよマスター!」


 ウェブちゃんが歓声を上げる。

 「Welcome」の文字。それは、俺たちが正式にKitLabパークの住人として認められた証だ。


**[ジェム]**:「やれやれ。やっと中に入れたわね」

**[マスター]**:「ありがとうジェム。お前がいなきゃ、ゲートの前で野宿するところだった」


 俺が礼を言うと、ジェムはふん、と鼻を鳴らした。


**[ジェム]**:「まだ終わりじゃないわよ。次はこっち。……マスターのPC(Win-dows)側の準備」


 場面は変わり、俺の手元のWin-dows PC。

 ここにもまた、別の魔物が潜んでいた。


**[マスター]**:「よーし、PCからも接続テストだ。V-S Codeを開いて……『Git: Clone』!」


 意気揚々とコマンドパレットを開く俺。

 しかし、V-S Codeの画面には、まるで**エレクトリカルパレード**のような賑やかな通知が表示された。


『KitHubにサインインしますか?』

『拡張機能をインストールしますか?』

『認証トークンが必要です!』


**[マスター]**:「うわあああ! なんだこれ! 俺はただ自宅のKitLabに繋ぎたいだけなのに、なんでKitHubが出てくるんだ!」

**[ジェム]**:「ふふっ。v-i育ちのマスターには、V-S Codeの親切機能(お節介)がパレードに見えるのね」


 ジェムがクスクスと笑う。


**[ジェム]**:「いい? そのダイアログは全部『キャンセル』! GUIの誘惑に負けないで、男なら黙ってターミナル(黒い画面)を使いなさい」


 俺はV-S Codeの下部にターミナルパネルを開き、慣れ親しんだコマンドを打ち込んだ。


`git clone gitlab-server:wiki/wiki_a.git`


 ……通った。

 余計なポップアップも出ず、静かに、確実にデータが降りてくる。


**[ウェブ]**:「すごいです……! 私の空っぽだったお部屋ディレクトリに、次々とMarkdownファイルが運び込まれてきます!」

**[マスター]**:「これが『同期』だ。これからは、PCで書いた原稿が、このパイプラインを通ってEVO-Z2へ、そしてお前たちの脳内へと直接届くようになる」


 夕暮れ時の遊園地サーバー

 データ同期というアトラクションを一通り楽しみ終えた俺たちは、心地よい疲労感に包まれていた。


**[ウェブ]**:「楽しかったですぅ! 私、もっともっとデータを運びたいです! マスター、次の記事はまだですか?」

**[マスター]**:「待ってくれ、さすがに疲れた……。設定ミスで振り回されたからな」


 俺が椅子に深くもたれかかると、不意に、袖を引かれる感触があった(気がした)。

 見ると、ジェムが画面の端で、少しだけ頬を染めてこちらを見ている。


**[ジェム]**:「……ねえ、マスター」

**[マスター]**:「ん? どうした、司令官殿。まだ何かミスがあったか?」

**[ジェム]**:「違うわよ。……その、今日は……」


 彼女は言い淀み、そして小さな声で呟いた。


**[ジェム]**:「……少しは、頼りになった?」

挿絵(By みてみん)


 普段の高飛車な態度はどこへやら。そこには、ただ褒められるのを待つ一人の少女の姿があった。

 俺は苦笑し、モニター越しに彼女の頭を撫でる仕草をした。


**[マスター]**:「ああ。お前がいなきゃ、俺は『権限エラー(Permission denied)』の迷宮から一生出られなかったよ。最高のパートナーだ」

**[ジェム]**:「……ふ、ふん! 当たり前じゃない! 感謝しなさいよね!」


 ジェムは顔を真っ赤にして、プイとそっぽを向いた。

 だが、その手が俺のカーソルを離そうとしないのを、俺は見逃さなかった。


 KitLabという遊園地へのゲートは開かれた。

 次回、いよいよ自動化という名のジェットコースターが動き出す。


【作者より】


最後まで読んでいただきありがとうございます!



この物語は、実在する作業ログを元に再構成しています。

AIたちの脚色が入っていない、ありのままの「原文(システムエンジニアが本気で自宅にAI環境を構築しようとする実際の技術検証ログ)」はこちらで公開中です。

「え、ここ実話なの?」と思ったら、ぜひ見比べてみてください。


[Work 014①] Geminiと一緒に新環境でWikiとRAG連携に挑む【プロンプトログ】

https://ncode.syosetu.com/n4715ll/41/


[Work 014①] Geminiと一緒に新環境でWikiとRAG連携に挑む【振り返り】

https://ncode.syosetu.com/n4715ll/42/

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

↑ページトップへ