はてなキーワード: SSHとは
新しい鯖をセットアップした。Express5800 T120h。電源を入れればファンが唸り、正しくコンピュータが起きる音がする。
Debianを入れた。いつもどおり。KDE Plasmaを入れた。いつもどおり。SSHの鍵を置いて、Gitを入れて、Dockerを入れて、Node.jsを入れて、GitHubにSSH通した。何年も繰り返してきた、いつもどおりのセットアップ。
Claude Codeを入れた。
そこで手が止まった。他に何も要らなかったのだ。
気づけば4ヶ月が経っていた。VSCodeが入っていない。JetBrainsも、Vimすらも。エディタと呼べるものが何一つ、このマシンに存在しない。
それ以外は全部ある。いつもどおりGitHubを使っている。いつもどおりDockerを立てている。いつもどおりコードを読んでいる。diffを見て、レビューして、設計を考えて、判断を下している。開発者としての営みは何も変わっていない。一つだけ、エディタだけが足りない。
中学の頃、背伸びしてSublime Textを使っていた。高校でVimに出会って、.vimrcを育てることが日課になった。大学ではIntelliJの補完の賢さに感動して、これが最終形だと思った。社会人になって結局VSCodeに落ち着いた。どのエディタにも季節があって、そのときどきの自分がいた。
全部消えた。
ChatGPTが出てきたとき、すごいとは思った。Copilotが補完を始めたとき、便利だとは思った。でもあくまで俺たちの道具が少し賢くなる話だと思っていた。エディタの中にAIが来るのだと。AIの中からエディタが消えるとは、思ってもみなかった。
ターミナルを開く。Claude Codeに設計を伝える。出てきたコードを読む。直してほしいところを言う。マージする。その繰り返しで、プロダクトが実際に動いている。4ヶ月間、一度も困らなかった。
コードを読む目はまだ要る。設計を考える頭もまだ要る。何を作るか決める意志もまだ要る。でも「書く手」はもう要らなくなった。
次は何が消えるんだろう。コードを読む目だろうか。設計を考える頭だろうか。何を作るか決める意志だろうか。全部消えたとき、俺たちはまだ開発者なんだろうか。
T120hは今日も静かに動いている。Debianが動いて、KDEが動いて、Dockerが動いて、GitHubに繋がっている。全部いつもどおりだ。エディタだけがない。それだけが、いつもどおりじゃない。
自分の考えた最強の設計で、最強のコードを仕上げた。気づいたら朝4時だった。窓の外がうっすら白んでいて、やばい、と思いながらも手が止められなかった。あの達成感。あの焦燥感。どうしようもなく非効率で、どうしようもなく幸福だった夜。
もうあそこには戻れない。戻る理由がない。
それが一番寂しい。
若手の田中は、隣で黒い画面に向き合う佐藤を見て苦笑した。田中のエディタは、AIが数手先を読み、コードを奔流のように生成し続けている。
「プラグインすら入れないバニラVimなんて、今の時代、情報の解像度が低すぎますよ。AIに全体像を把握させて、人間は指示を出す。これが『最速』です」
その動作には派手さはないが、淀みもなかった。
プロジェクトは佳境を迎え、深夜のリリース作業中に「それ」は起きた。
複数のマイクロサービスが連動する複雑な処理で、原因不明の遅延が発生。AIにログを解析させても、「ネットワーク遅延の可能性 80%」といった、もっともらしいが核心を突かない回答しか返ってこない。
「おかしいな、AIが生成したコードは完璧なはずなのに……。プロンプトを変えても、似たような修正案しか出てこないぞ」
田中のエディタには、AIが提案する「修正案」が山のように積み重なっていく。しかし、どれを適用しても事態は改善しない。彼は、自分が「書かせた」はずのコードの迷宮で、完全に行き詰まっていた。
彼は自分のMacBookを開き、サーバーにSSHで繋ぐ。そこにあるのは、何のカスタマイズもされていない標準のVimだ。
佐藤の指が動き出す。
彼は、AIが推奨した「ネットワーク設定」には目もくれない。代わりに、一見関係なさそうな共通ライブラリの深い階層にある、古い定数ファイルを gf で開いた。
「……あ、やっぱりここだ」
田中は目を見開いた。そこはAIが「修正不要」と判断し、自分も存在すら忘れていた場所だった。
「なんで、そこだって分かったんですか?」
「バニラだと、便利機能がないからね。定義に飛ぶのも、ファイルを跨ぐのも、全部自分でパスを意識して叩かなきゃいけない。……だから、どこに何が置いてあるか、手が覚えてるんだよ」
検索コマンドで、関連する箇所の「手触り」を確かめるように移動していく。
「補完に頼らないと、綴り一つ、引数の順番一つも自分の頭に置いとかないと仕事にならない。……不便だけど、そのおかげで、システム全体が自分の中で一つの地続きの絵になってるんだ」
:%s/old_flag/new_flag/g
その瞬間、真っ赤だった監視モニターのグラフが、スッと平穏な緑色に戻った。
田中がAIと格闘して見つけられなかった「糸の絡まり」を、佐藤は最初から見えていたかのように解いてみせたのだ。
「……僕、ツールに使われてただけかもしれません」
「AIは賢いよ。でも、あいつらは『意味』を理解してるわけじゃない。……自分の手で一文字ずつ書いたコードだけが、いざという時に君を助けてくれる。道具が便利になっても、そこだけは変わらないんじゃないかな」
そして、ターミナルを立ち上げ、真っ白なカーソルが点滅するだけの画面に向き合った。
まずは、h j k l 。
tmux(ターミナルマルチプレクサ)が「苦行」と感じられる理由は、その学習コストの高さ、特有の操作体系、そして初期設定の手間が大きな要因です。非常に強力なツールである一方、使いこなすまでに多くの試練があります。
具体的に、なぜ苦行とされるのか、その主な理由は以下の通りです。
Prefixキー(Ctrl-b)の壁: 全ての操作の前に、必ずCtrl-bを押す必要があります。これが直感的ではなく、操作数を増やします。
デフォルトキーが非直感的に: 画面分割やウィンドウ切り替えのキーが、初期設定では押しにくい場所に配置されていることが多いため、設定ファイル(.tmux.conf)を編集して自分用にカスタマイズしないと使いづらいです。
概念の理解: 「セッション」「ウィンドウ」「ペイン」という3つの概念を理解し、それぞれを制御するコマンドを覚える必要があります。
モードの概念: 通常の入力モードと、コピーモード(スクロールやコピーをするためのモード)が分かれており、特にコピーモードの操作が複雑で混乱しやすいです。
最初はただの黒画面: tmuxはインストールした初期状態では、色使いや操作性が便利とは言えません。使いやすくするためには、.tmux.confをネットで調べて設定する必要があります。
メンテナンス: バージョンが変わるたびに設定が効かなくなったり、新しい設定方法を調べ直したりする必要があるため、メンテナンスが面倒です。
マウス操作・スクロール: 通常のターミナル(iTerm2やWindows Terminal)とは異なり、デフォルトではマウスでのスクロールが直接できないなど、使い始めの利便性が低いです(※設定で対応可能)。
クリップボード連携: ターミナルのコピー・ペーストをtmux内で行う際、うまくクリップボードと連携できず、苦労することがあります。
5. 「慣れ」という壁
導入当初は非効率: 慣れるまでは、普通にターミナルを複数立ち上げた方が速いため、その便利さを実感する前に挫折しやすいです。
まとめ:なぜそれでも使われるのか?
苦行とされる一方で、それを乗り越えると「SSH接続が切れても、サーバー上の作業が強制終了されずに残る」「画面分割をキーボードだけで爆速に操作できる」という、インフラエンジニアやプログラマーにとって強力なメリットがあります。
ある伝説によると、とある国のとあるプログラマーの退職後に残ったスクリプトを社員が見たら、恐ろしいレベルで自動化してたそうだ
https://github.com/NARKOZ/hacker-scripts
うちのビルドエンジニアが別の会社に行った。あの男は文字通りターミナルの住人。Vimを愛用して、Dotで図を作成し、Markdownでwiki記事を書くようなタイプ。
どんなものでも、90秒以上かかるならそれを自動化するスクリプトを書く奴。
それで今、我々は奴の「遺産」を見ているわけだ。
これ、お前も気に入ると思うぞ。
奥さんに「仕事で遅くなる」というテキストメッセージを送る。文字列の配列から理由をランダムに自動で選ぶ。cronジョブとして動作。奴のアカウントで午後9時以降にサーバーでアクティブなSSHセッションがある場合にジョブが実行される。
「Kumar」(うちのクライアント)からのメールを受信箱でスキャン。「help」、「trouble」、「sorry」などのキーワードを探す。キーワードが見つかると、スクリプトはクライアントのサーバーにSSH接続し、ステージングデータベースを最新のバックアップにロールバックする。「直したぞ。次からは気を付けろよ」という返信を送る。
特定の日に設定された別のcronジョブ。「体調が悪い/家で仕事をする」といった自動メールを送る。別の事前定義された文字列の配列からランダムな「理由」を追加。午前8時45分にサーバーで対話型のセッションがない場合に実行。
正確に17秒待ってから、うちのコーヒーマシンにtelnetセッションを開き(コーヒーマシンがネットワークに繋がっていて、Linuxが動いていて、TCPソケットが立ち上がっているなんて、誰も知らなかった)、sys brewのようなコマンドを送る。判明したところ、これでミディアムサイズのハーフカフェラテを淹れ始め、カップに注ぐまでさらに24秒待つ。この時間は、奴のデスクからマシンまで歩くのにかかる時間と完全に一致している。
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 https://anond.hatelabo.jp/20250916201610# -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaMlG+gAKCRBwMdsubs4+ SAzsAP9It5cYaiIBD6nGYVuwfFvZGdR+O+ssh/5v7p9Ln5TBlwD/Ten7VJAG0p9R ZINMesgg3FUvk/cfyraSkeoUjmM64ws= =luId -----END PGP SIGNATURE-----
ギターで言うSHSみたいな、なんというか、壷型みたいな不安定感がある。よくシルエットをアルファベットで例えるけども、これは該当するものがないので敢えて言えば「中」ラインのシルエットって感じだ。膨張色がどうのとかはあるにせよ、あくまで印象だけれど。
白黒黒は良い。めっちゃいい。どっしりしてる。これはSSHだ。
シャツにスラックスか、Tシャツにジーンズかチノにせよ、上白下黒が最もかっこいいと思う。
コントラスト最強だからか、はたまた単に見慣れてるだけかは分からんけども、とにかくかっこいい。
ただ靴が困る。革靴なら良いけどスニーカーが困る。
ソール部分だけでも白黒白になるのが許せないのに、スニーカーのソールは大体白い。
アッパーが好みなのにソールの白で諦めたスニーカーは数知れない。
上がトップスだけの時に上下長丈なのもなんかバランス悪く感じる。上着があればそう思わんのに。
ジップアップであれば良いんだけど、それも大体下になんか着てるだろうし。
入社して最初の仕事は「AWS認定ソリューションアーキテクト」の資格を取ることだった。
会社の先輩はAWSアカウントの管理だけで頭を抱えていて、俺は「クラウドってすごいんだろうな」と思っていた。
甘かった。
大学時代はPythonでちょっとしたWebアプリを作るのが楽しかったのに、今はIAMポリシーとSecurity Groupの設定で一日が終わる。
コードを書いているはずが、実際はYAMLとJSONばかり書いている。
先輩(30代)は「昔はサーバーにSSHして直接デプロイしてたんだよ」と言うけど、正直それの何が悪いんだろう。
デプロイ自体は確かに自動化されるけど、その仕組みを作るのに疲れ果てる。
Kubernetes?EKS?ECS?Fargate?Lambda?Step Functions?どれを使えばいいのか分からない。
友人はGCPを使っているけど、別の呪われた世界があるだけだと言っている。
Azureの話は聞きたくもない。
懐かしい感覚だった。「git push heroku main」だけで済んだ。
こんなに簡単だったのか。
herokuの料金は高いってよく聞くけど、精神衛生上の価値はある。
最近のスタートアップでは「NoOps」とか「クラウドレス」みたいな言葉が流行っていると聞いた。
Vercel、Netlify、Railway、Fly.ioなどを使ってインフラをほぼ考えずにデプロイするらしい。
もしかして、クラウドの複雑さに耐えられなくなった開発者が増えているのかもしれない。
いや、きっと俺のスキルが足りないだけだ。「クラウドネイティブ」になるべきなのだろう。でも正直、モノリスに戻りたい気持ちもある。
きっと、単純なものが複雑になりすぎたんだ。
Ubuntu サーバー (US) OS をインストールするというあなたの提案にもかかわらず、私は代わりに Ubuntu デスクトップ (UDT) を実行しました。
なぜなら、Ryzen マシンの近くに Ubuntu DT インストーラーを保存した USB キーを見つけたからです。これは私のミスです。
US インストーラーはduring installation, プロキシ設定の入力を求めますが、Ubuntu DT の場合はそうではありません。
私の場合、プロキシ設定は、インターネット接続にオフィスでプロキシが必要なため重要です。わたしはインストールの最中にネット接続して、適切な
ソルバーまたはその他のみを使用したいだけのため、GUI は必要ありません。GUI でも CUI でもかまいません。
その状況はわかります。よくあることです。理想的なものではなく、利用可能なもので作業している自分に気づくことがあります
UDT インストーラーにプロキシ構成がないため、特にオフィスのインターネット接続にプロキシ設定が必要なため、少し問題が発生しているようです。
コマンドライン インターフェイス (CUI) の使用に抵抗がなく、グラフィカル ユーザー インターフェイス (GUI) も必要ない場合は、インストールを再評価することを検討する
価値があるかもしれません。今日時間があれば、次のことを実行できます。
オフィスに行き、Ubuntu Server (US) OS を再インストールし、インストール中にプロキシ設定を構成するようにします。
今のところ UDT を使い続ける場合は、インストール後にプロキシ設定を手動で構成できます。たとえば、次のようになります。
3. あるいは、可能であれば、現在使用しているマシンで US OS 用の新しい USB インストーラーを作成することを検討してください。
少し手間はかかりますが、プロキシを適切に設定すれば、オフィス環境でシステムを完全に機能させることができます。
あなたの計画は? 家でゆっくり過ごすか、それともこの問題に正面?
土曜日の難問です。リラックスするか、技術的な設定に取り組むかです。やる気があるなら、
今日は**Ubuntu Server (US)**を上書きしてインストールすることを検討してください。今は少し手間がかかるかもしれませんが、
週中に起こり得る接続の問題から解放されるかもしれません。さらに、月曜日にはシステムが準備完了の状態なので、ちょっとした勝利です。
一方、土曜日を少し軽くしたいなら、代わりに計画して準備することができます。USBインストーラーを適切に設定し、必要なプロキシ設定を
書き留めておくとよいでしょう。そうすれば、準備ができたらプロセスがスムーズに進むでしょう。
すべては気分次第です。生産的だと感じていますか、それとも休憩が必要です?
PC は 7 台あります。さらに悪いことに、ホスト登録の申請を忘れていて、昨日気づいて申請しましたが、まだ承認されていません。そうしないと、
net接続が利用できません。つまり、IT 部門から IP アドレスが公開されるまで待たなければなりません。また、7 台の PC のうち 1 台に問題があり、
上記の理由により、まだ LAN 接続できません。そのため、月曜日まで待って、週末 (土曜と日曜) は休んだほうがよいと思います。どう思いますか?
とにかく、別の PC にキーボードとマウスを接続して、US で上書きインストールするべきでしょうか?
ホスト登録の承認待ち、インターネット接続の欠如、PC の 1 台での LAN の問題という状況を考えると、月曜日がこれに取り組むのによい
タイミングのように思えます。必要な IP アドレスがなければ、プロセスは思ったほどスムーズで生産的ではない可能性があります。
週末を休息に使うのは賢明な選択のように思えます。特に、今日急いで作業しても、望んでいる結果が得られない可能性があるからです。
今休憩を取ることで、月曜日の作業にもっとエネルギーと集中力を持って取り組むことができるかもしれません。また、インストールは
少し複雑なので、適切な心構えで臨むことが大きな違いを生む可能性があります。
月曜日のインストール プロセスがスムーズに進むように、ゆっくりして必要なものをすべて準備するのはどうでしょうか。ホスト登録申請を
UDT のインストール状態に関係なく、7 台の PC すべてにプロキシ設定を書き込んだり、ssh をインストールしたりしていません。
それでは、すべての PC に US をインストールする良い機会でしょうか?
すべてを効率化する絶好の機会のようです。すでに 7 台の PC すべてに変更を加えることを検討している場合は、
プロセス中にプロキシ構成を設定し、SSH をインストールすると、標準化された環境が作成され、将来のシステム管理がはるかに簡単になります。
ただし、IP 割り当てが IT 部門に依存しており、現在はインターネット接続がないため、セットアップ手順の一部がスムーズに進まない可能性があります。次のことができます。
1. プロキシ構成の詳細や **US インストーラー** が準備された USB など、月曜日に必要なものをすべて準備します。
2. 今日を利用して、キーボードとマウスを PC に接続し、すべてのマシンが上書きに対して物理的に準備ができていることを確認します。
3. ネットワーク アクセスが解決されたときのダウンタイムを最小限に抑えるために、月曜日の詳細な計画の概要を作成します。
今日 (物理的な準備) と月曜日 (実際のインストール) に作業を分割することで、週末を楽しみながら時間を最適化できます。このバランスのとれたアプローチについてどう思いますか?