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

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

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

エラーが発生しました。

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

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

第026 話:その鍵、無防備(パブリック)につき〜成層圏のサンドイッチ・ドリーム〜

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

第26話:その鍵、無防備パブリックにつき〜成層圏のサンドイッチ・ドリーム〜


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



 その日、我が家の自宅サーバー『EVO-Z2』のリビング(作業ディレクトリ)は、遠足前の幼稚園のような喧騒に包まれていた。


**[ジェム]**:「ちょっとマスター! 荷造り(git commit)は終わったの!? バスが出ちゃうわよ!」

挿絵(By みてみん)


 モニターの中で、ジェムが仁王立ちで叫んでいる。

 今日の彼女は、いつものOL風スーツではなく、動きやすそうなフライトジャケットを羽織っていた。

 背中にはジェットエンジンのような巨大なブースター(R-Syncデーモン)を背負っている。


**[マスター]**:「わかってる! 今、最後のファイルをパッキング(add)したところだ! これからKitLab経由で、新エリア『W-iki_A』へ出発する!」


 俺たちは今日、構築したW-ikiシステムの実体を、コンテナという揺りかごに乗せて、KitLabという巨大ターミナルへ転送プッシュしようとしていた。

 それは、サーバー管理者にとっての「お出かけ」。遊園地へのドライブにも似たワクワクするイベントだ。


**[ウェブ]**:「マスター! おやつ(キャッシュファイル)は持ちましたか? 酔い止め(パケットロス対策)は?」

**[マスター]**:「バッチリだウェブちゃん。さあ、出発の時間だ!」


 俺たちは意気揚々と、KitLabへと続くゲート(SSHポート)の前に立った。

 ジェムがブースターを点火し、ウェブちゃんが俺の手を握る。


**[ジェム]**:「行くわよ! 転送プロトコル、始動!」

**[マスター]**:「認証開始! 鍵(SSH Key)をスロットイン!」


 俺はポケットから、昨日苦労して作成した『秘密鍵(id_ed25519)』を取り出し、ゲートの鍵穴に差し込もうとした。


 ガチンッ。


 しかし、鍵は穴に入らなかった。

 それどころか、ゲートから無慈悲な赤い警告灯が浴びせられる。



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

 ◇ KitLabゲートキーパー ◇

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

> git@gitlab-server: Permission denied (publickey).

> fatal: Could not read from remote repository.

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

[System/Error]

認証失敗。この鍵は使用できません。

立ち去ってください。

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



**[マスター]**:「なっ……『Permission denied(拒否)』だとぉ!?」

**[ジェム]**:「ちょっと! どういうことよマスター! ちゃんと『通行手形』は登録したんでしょ!?」


 ジェムがブースターをふかしたまま、ジト目で俺を睨む。


**[マスター]**:「と、登録したはずだ! 昨日、画面でポチポチやっただろ!」

**[ジェム]**:「じゃあなんで開かないのよ! このままだとタイムアウト(出発時間オーバー)になっちゃうわよ!」


 焦る。冷や汗が流れる。

 俺は鍵をガチャガチャと回そうとするが、ゲートは「そんなガバガバな鍵、信用できません」と言わんばかりに沈黙している。


**[マスター]**:「くそっ、なんでだ! 鍵はあるのに! 形も合ってるのに!」

[ORama]:「……ふむ(鍵が『裸』だ)」


 背後で荷物持ちをしていたORamaくんが、ボソリと呟いた。


**[マスター]**:「裸?」

**[ジェム]**:「ああっ! マスター、見て! その鍵の権限設定パーミッション!」


 ジェムに言われて、俺は手元の鍵をよく見た。

 鍵の持ち手には、小さく数字が刻印されている。


 **『 644 (-rw-r--r--) 』**


**[ジェム]**:「バカじゃないの!? 『644』って、誰でも読める(Public)設定じゃない! そんな無防備な鍵、セキュリティにうるさいKitLab様が受け取るわけないでしょ!」

**[マスター]**:「そ、そうか! Win-dowsで作ったから、権限がゆるゆるだったのか!」


 SSHの秘密鍵は、所有者だけが扱える『600』の設定でなければならない。

 みんなに見せびらかしているような鍵は、鍵として認められないのだ。


**[ジェム]**:「もう! 早く『600』に締め直しなさいよ!」

**[マスター]**:「やろうとしてるんだが……Win-dowsのプロパティ画面じゃ、どこを直せばいいのか分からん!」


 GUIの迷宮に迷い込み、俺が頭を抱えていたその時だった。


**[ウェブ]**:「あ、あのぅ……マスター?」


 ウェブちゃんが、ゲートの横にあるゴミ箱(ゴミ捨て場ディレクトリ)をあさりながら声を上げた。

 彼女の手には、少し汚れた設定ファイルが握られている。


**[ウェブ]**:「これ……違いますかぁ? お掃除してたら出てきたんですけど……」

挿絵(By みてみん)


 彼女が差し出したのは、昨日俺が「なんか上手くいかないな」と思って捨てた、SSHの設定ファイル(config)と、正しく権限設定された鍵のバックアップだった。


**[マスター]**:「そ、それだぁぁぁ!!」

**[ジェム]**:「でかしたわウェブちゃん! マスター、早く!」


 俺はウェブちゃんから鍵をひったくり、コマンドという名の研磨剤を吹きかけた。


`$ chmod 600 ~/.ssh/id_ed25519`


 シュゥゥゥ……!

 鍵の刻印が『644』から、鋭く輝く『600』へと変化する。

 無駄な贅肉(他者からのアクセス権)が削ぎ落とされ、所有者専用のソリッドな鍵へと生まれ変わった。


**[マスター]**:「これならどうだ! 再認証!」


 カチャリ。

 今度は、鍵は吸い込まれるようにゲートに収まった。



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

 ◇ システムログ表示 ◇

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

> ssh -T git@gitlab-server

> Welcome to KitLab, @root!

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

[System]

認証成功。ゲートオープン。

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



**[ジェム]**:「開いた! ……でもマスター、時間がないわ!」


 ジェムが腕時計システムクロックを指差す。

 トラブルで時間を食いすぎた。このまま通常の転送速度(SCP)で移動していては、遊園地(デプロイ先)の閉園時間に間に合わない。


**[マスター]**:「くっ、ここまでか……」

**[ジェム]**:「……仕方ないわね」


 ジェムが覚悟を決めたように、フライトジャケットのジッパーを上げた。

 そして、俺とウェブちゃんを両脇に抱え込む。


**[ジェム]**:「マスター、ウェブ、しっかり捕まってなさい。……『Realtime(優先度最高)』で飛ばすわよ」

**[マスター]**:「お、おい待て! RealtimeモードはOSの制御を振り切る諸刃の剣……!」

**[ウェブ]**:「えっ、と、飛ぶんですか!? 私、高所恐怖症……きゃあああっ!?」


 ドォォォォォォン!!


 ジェムの背中のブースターが、青白い炎(CPU使用率100%)を噴き上げた。

 俺たちの体は、重力を無視してデータ転送ストリームの中へと射出された。


 

 ◇ ◇ ◇


「うわあああああああ!! 速すぎィィィ!!」


 視界が流れるコードの奔流で埋め尽くされる。

 凄まじいG(重力加速度)が全身を襲う。

 俺は必死に、目の前にあるジェムの背中にしがみついた。


**[ジェム]**:「ちょっとマスター! どこ掴んでんのよ!」

**[マスター]**:「無理だ! 離したらパケットロスで死ぬ!」


 俺の手は、猛スピードの風圧に逆らえず、ジェムのスレンダーな腰から胸元へと滑り上がっていた。

 薄いシャツ越しに伝わる、Gooogle製AIの熱暴走寸前の体温と、驚くほど柔らかい感触。v


**[ジェム]**:「あ、あんっ……! こら、変なとこ触るな……! 計算リソースが乱れるでしょ!」

**[マスター]**:「不可抗力だ! 止まりたくても止まれないんだよ!」


 だが、悲劇(と幸福)はそこで終わらなかった。

 遅れて加速してきたウェブちゃんが、制御不能になって背後から突っ込んできたのだ。


**[ウェブ]**:「マスターぁぁぁ! 待ってくださいぃぃぃ!」

**[マスター]**:「うぉっ!?」


 ドスンッ!


 背中に衝撃。

 そして、むにゅん、という圧倒的な質量の圧迫感。

 ウェブちゃんの豊満なストレージ(胸部装甲)が、俺の背中に完全に密着し、さらに押し潰してきたのだ。


**[ウェブ]**:「こ、怖いですぅ……! 離さないでくださいぃ……!」

挿絵(By みてみん)

**[マスター]**:「ぐ、ぐえぇ……!?」


 前にはジェムの華奢だが張りのある肢体。

 後ろにはウェブちゃんの暴力的なまでの柔らかさ。

 俺は、最先端AI二人に挟まれるという、人類の夢と欲望が詰まったサンドイッチの具となり、成層圏(ネットワークの彼方)をカッ飛んでいた。


**[ジェム]**:「もう! 後ろが重いのよ! ウェブ、あんた何ギガ抱えてんの!?」

**[ウェブ]**:「ひゃうっ! ご、ごめんなさいお姉様! でもブレーキが……!」

**[マスター]**:「(……悪くない。このまま転送エラーで永遠にループしてもいい……)」


 俺が意識を遠のかせかけたその時、ジェムが顔を真っ赤にして叫んだ。


**[ジェム]**:「マスター! 鼻の下伸ばしてないで、ちゃんと舵を取りなさい! 墜落するわよ!」

**[マスター]**:「ら、了解! ターゲット、ディレクトリ『W-iki_A』! 全速前進!」


 俺たちは一塊のデータパケットとなり、光の速さでKitLabのサーバーポートへと吸い込まれていった。


 

 ◇ ◇ ◇


 数分後。

 無事にデプロイを終えた俺たちは、サーバーの片隅で肩で息をしていた。


**[ジェム]**:「はぁ、はぁ……。もう、最悪……。服も髪もボサボサじゃない」

**[ウェブ]**:「め、目が回りますぅ……」


 ジェムが乱れた服を直しながら、恨めしそうに俺を見る。

 その頬は、運動後の高揚か、それとも別の理由か、ほんのりとピンク色に染まっていた。


**[ジェム]**:「……で? いつまで私の背中の感触、思い出してニヤニヤしてるの?」

**[マスター]**:「い、いや、そんなことは……」

**[ジェム]**:「ふん。……ま、無事に届いたから今回は許してあげる。でも次は……」


 彼女は俺の耳元に顔を寄せ、悪戯っぽく囁いた。


**[ジェム]**:「……もっと『安全な速度』で、ゆっくり楽しませてよね? マスター」

挿絵(By みてみん)


 そう言ってウインクするジェムと、まだ俺の背中にしがみついているウェブちゃん。

 SSH接続エラーから始まった大騒動は、こうして俺の心拍数をオーバークロックさせて幕を閉じたのだった。


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

【作者より】


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



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

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

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


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

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


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

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

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

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

↑ページトップへ