SSH接続【Misskeyサーバー構築に学ぶ自分用メモではなく日記③】

この辺でメモを取っておこう、ということになった。
先人たちがさんざ記事書いてるんだから、ただでさえシリーズもの書くの苦手な自分が書き始めてもきっとまた途中分解しそうだし……とはおもったが、すでにこの時点でわからない用語なり手順なりを確認するために結構な時間を要した。つまりはまぁ、頭が先人たちに追い付いていない。

時間がかかると作業は日を跨ぐことになり、日を跨ぐと鳥頭の自分はおさらいから始めないと次の段取りを見失う。メモする分多少時間は間延びするが、スクショとかはもうあきらめているぶん書ききれるはずだ。

※注意:いつもより雑なので、ご気分を悪くしたらごめんね。

2023/07/23追記:もともとはcalckyを立てるために書いていたメモなのですが、firefish(元:calcky)インストール直前でMisskeyへ変更しました。個人的な理由が山ほどあるんですが、第一に優先していたのが「近日予定している宣伝媒体(紙)へのアカウント記載」のため、つい先日firefishへ変更したばかりで安定性を欠く状態のcalckyはいったん保留としています。インストール直前までは文章中にcalcky前提でつづったものが散見されますのでご注意ください(あえて直してません)

先述したとおり、今更ながら段取りを確認する。
①で何度も参考にしているこのへんとかこのへんの先人記事を、わしは今これを書いている時点ではすべて読み切ってはいない。初めて触れる情報量が多く混乱を招くので、自分の手順に今関係ないものはひとまず頭に入れないことにしている。これのデメリットは……「もしかしたら読み進めたらこの先に書いているかもしれない今欲しかった情報」を、おそらくわしは散々調べ切った後に発見することになるということだ。

今回やるのはセキュアシェル(以下、SSH)という作業用ツールで前回作ったインスタンス(以下、サーバー)にアクセスし、いつでもメンテナンスできるように自分しか通れない通路をつくって開けたり閉じたりしたい、というものだ。
このとき、先人記事ではSSH接続に「mac民はターミナルでできるけどWin民はTeraTermというフリーソフトいれようね」的なことが書いてあった。
この時引っかかったのは、ターミナルというツールはWindowsにもデフォルトで入っていたよな?ということだった。

脱線すること数時間

結論から言うと「自分じゃ解析できなかったけどやれる人はもしかしたらやれるかもしれん」という感じで、最終的には借りてきたVPSサーバーやさんが推奨しているということもあっておとなしくTeraTermを入れた。しかし一概に「WindowsのターミナルではUbuntuへSSH接続できない」というわけではないということを確認できたため、もしかしたら誰かができた報告を書いてくれるかもしれないという期待も込めつつ記録しておく。

Windowsでいうターミナルというのは、よくWindows関連で困ったときにごり押しの手段として用いられる「コマンドプロンプト」や「Windows Power Shell」でおなじみのあの黒い画面のアプリだ。
調べてるとこのへんなんかで確認が取れた。これの通りに、コマンドプロンプトでSSHコマンドを入力してみる。

ssh username@123.45.67.89 -p 12345 -i "C:\path\to\.ssh\id_rsa" -o ServerAliveInterval=60

▲この文を自分のサーバーアクセス用にいじくる。
・username→root(KAGOYAでサーバー立てた場合)
・123.45.67.89→インスタンス作成時にできたIPアドレス
・12345→22
・"C:~rsa"→前回作ったログイン認証キーファイルを保存した場所のパス

打つとさっそくよく分からないことをいわれる。あとからこれがセキュリティ警告の質問で、わからずとりあえずyesを入力して表示された次の文がログイン後のデフォルト文だということも知った。つまり、サーバーにログインができたのだ。
知ったがコマンド初心者なので参考サイトの手順通りに表記がされないと途端に怖気ずく。コピペはCtrl+CやCtrl+Vで可能なので、一文一文Google検索にかけてやれば英字だらけの検索結果でさらに滅入った。申し訳ないが英語の成績はよくない。

検索で出てくる記事の多くは実機をリモート操作するためのUbuntu利用を前提に書いているところがあるため、VPSの場合はどうなるのかはよくわからない。ログインだけならコマンドプロンプトでできることも分かっているが、これを日常的なアクセスのために省略化、デフォルト化する手順がわからない。

例えば、WSL(端的に言えばUbuntuOSのインストール)をサーバー作成の際に指定したものとは別に、直接触ってるこのPCにも入れる必要があるのか、という点。このへんを見るに恐らく必要ではないかと踏んでいるけど……TeraTermを触っている感じではこの辺の理解をすっ飛ばして接続後のアレソレまで到達したこともあって余計にわからん。ソフトをインストールした際に出来上がってたのだろうか。
このへんこのへんで省略化、デフォルト化できそうな気配はみられる。しかしながら、わしの理解力が乏しいためにこれらをうまく応用して「Windowsのターミナルを起動したらVPSサーバーにアクセスされた状態で起動する」という現象を生み出すことはできなかった。

気を取り直してTeraTermインストール

閑話休題。
本命のTeraTermをダウンロードして入れる。リンクを挿入してはいるが、今入ろうとするとなぜかタイムアウトする(2023/07)ため、後続の方はもしかしたら入手が困難になっている可能性がある。どうにか手に入れられないか、他で代替できないか試していただきたい。
さて、TeraTermはKAGOYAの場合はこのへんで詳しく最初の動きが書かれている。
手順を踏んで気づく。前回作ったログイン用認証キーのファイルは開かずあのまま使うということを。もしかしたら中に暗号化された何かが入っているのかもしれない……カードキーならぬファイルキー。なくすと本当にやばそうな匂いしかしないのでダウンロードフォルダからバックアップ用の場所に移しておいた。

どんな画面がログイン成功といえるのか。一応個人的には

Welcome to Ubuntu ~
.
.
.
username@123-45-67-89:~# 

・username→KAGOYAデフォルトはroot
・123-45-67-89→IPアドレス
で、#のあとでカーソルがちかちかしていればいいはず。
先人記事たちはこの後は既にCalcky導入のインストール手順へ入っており、片方ではセキュリティ設定等は任意と書いてあったが、わしは臆病&この後じっくり腰を据えての時間を確保できそうになかったので先にセキュリティ設定をすることにした。わしは暗号キー紛失とかやらかしそうだから。

最低限のセキュリティ設定

とにかくどこでも言われているのは、「ポート番号を変更する」というものだ。次点でデフォルトの「ユーザーネームの変更」。
今の状態はサーバー作成時にVPS屋さんとこでみーんなおんなじで仮設定されたIDとパスワードでとりあえず入ったみたいなもんである。一応偽装しづらいログイン認証キーの生成は既にしてあり、ログインにもこれを利用しているため今自分が操作しているPCからのデータ抜き取りは難しいと思うが、何日も放置していればさすがにIPアドレスの数字総当たりで知らん人にカモにされる可能性はぬぐえない。簡単にログインはされないが、誰かが機械的にログインを試みたログはありえんほどいっぱい残る。いやすぎる。調べていてせめてポート番号変更の成功を確認するまでは今日はログアウトして眠れないと思った。結果睡眠時間は2時間になったが、安心感はひとしお。

もうひとつまだ先を急がない理由として、Calckyインストール等の本格的なプログラムコマンドをコピペしてきてエラーが起こった際、トラブルシューティングの記事の「読み方」を知らなければ闇に投げ出されてきっと心が折れてしまうため、「予行練習」をしたかったというのもある。

プログラムコマンド……つまりなにかコンピューターにやってほしいことがある際にこちらがテキストを打って指示する言語のうちUbuntuで使われる文法を、わしはもちろんのこと初めて扱う。
最近の記事は丁寧で、ここをコピペすればそのまま動くよ~、と分かるようにコード表記を普通のテキストと別途貼りつけてくれているためその全てを理解しなくてもなんとなくで動かせてしまうが、実際には各ユーザーに依存する情報や目的の差異によっては自分で変更箇所を特定して試す必要がある。エラーを吐いた場合はその読みを違えたのか、コピペ元が今回の目的に適していないのかあるいは……と、選択肢を絞るためにも、ある程度今自分が何を打ったのかは把握しておきたいと思う。

具体的にやりたいことの手順としては、
・ポート22でログインしている間に新しいポート番号でもログインできるようにする
・新しいポート番号でログインできるのを確認したらポート22からは入れなくする

の2つ。

まずは先人記事のリンクにあったこのへんを参考に、以下の文を入れてSSHのコンフィグ(設定モード)を起動する……も、はやくも「そんなコマンドはない」と返された。早すぎである。

$ sudo vim /etc/ssh/sshd_config

5、6個記事を渡り歩いて、どうやら$が要らないということが分かった。
コードの表記は人によって法則が多少違うため、できるだけ複数の記事を参考にしながら共通するところだけを信用して打っていくのがいい。
上の文は……
「(管理者として)・編集する・その他>SSH>SSH設定 」みたいな意味か。

入れると、どの記事でもなぜか省かれているが「本当に設定をいじるんですか?」という質問がされる。①読むだけ②編集する③戻る④なんだっけみたいな選択肢があり、選択肢の頭の文字を入力することで反映される。今回の場合は②なので、2番目に表記されているEditのE、を押したはず。
さらに不安になるほど大量のスクロールとともにコンフィグ設定画面(実際はGUI環境ではなくCUI環境なので、画面の切り替えはなく地続きで文章が表示されるため、コンフィグ設定"文"といった方が正しそう)になる。今本当にコンフィグにたどり着いたのか?エラー文を大量に吐かれたのではないか?という不安におびえるがひとまずあっている。

主にこのへんの記事にとてもお世話になったが、わしの下調べの甘さによりこの時点ですでに参考記事と同じ手順で設定を続けることはできないとわかった。他の記事も参考に導入項目の意味を理解して項目を後回しにしたり省いたりしていく必要があるようだ。

読めばわかるが、わしはまだファイアウォールが未導入なのに対し、記事ではより安全な手順でポート変更を確認するために既に導入済みの状態で書かれていた。
ファイアウォール関連はこのへんでコマンド一覧になっていた。助かる。

こうしてなんやかんやあり、ファイアウォールでのステータス上はひとまず
「新規ポート番号:解放中」
「ポート22:解放中」
と(勿論プログラム言語で)書かれているのを確認した。ではではテストだ。

今編集作業中のウィンドウは消さずにログインを維持したまま、新しい接続を増やす。無事に接続されたのを見届けた。
先の設定から「ポート22:閉鎖中」というステータスになるように先のコマンド一覧の記事から拝借してくる。もう一度テストして、無事にエラーが出て拒否されたのを確認したので今日は寝ることにする。本当はユーザーネーム変更までやりたかったが、正直大分消耗していた。

後日ポート番号の記憶違いで自分が追い出されてめちゃくちゃ焦るのは別の話。

この記事が気に入ったらサポートをしてみませんか?