「さくらVPSにDebianをインストールしてSSH接続」までの、はまりどころ

はじめに

「さくらVPSDebianをインストールしてSSH接続可能まで」

以前やった時は、何度もハマりつつ、最後「あれ?できてる。何でできたか分からんけどできた!」で、ちゃんと分かった感じがしていなかったので、再度やってみました。
途中自分が不安になったり、あそこがポイントだったなぁと思ったことを、記録しておきます。

注意

この一連の作業は、様々な要素が混じり合っています。MacOSDebianのバージョンが違うと、同じに進むかどうか分かりません。同じでも分かりません。
行っている作業の意味を把握しつつ、進めていく参考になればいいなと思って書きました。

環境

  • Mac OS Big Sur 11.2.3
  • さくらVPS
  • Debian10

SSH接続の前段階

1. さくらのVPSDebianをインストール

最新版の10にしてみました。

インストールに関してはこちらを見ながら丁寧にやれば、きっと大丈夫。 manual.sakura.ad.jp

注意点 

rootのパスワード・ユーザのフルネーム・ユーザ名・ユーザのパスワードを後から参照できるように、自分のやりやすい方法できちんと把握しておく。 インストール作業に入る前に、前もって用意しておくとよい。

my.norton.com

便利です。
パスワード作成を使用して強力なパスワードを作成する

不安になった点

インストール終了時、「接続切断されます、、、」とあるのですが

f:id:neutral2010:20210321135440p:plain
インストール終了時の画像

しばらく待っていて変わらないので、そのままにして自分で次の段階「VPSホーム画面への移動」を進めました。

2. 最初にやっておきたい設定(Debian

www.server-world.info

を参考に、まずはアップデート

この時点では、rootでしか操作できないので、まず、

$ su -  # - を付ける
パスワード #これはrootのパスワード 
#    #プロンプトが#になっている 

と、ルート権限になって

# リスト最新化
# apt update

# システムからのメッセージで行ったコマンド
# apt list --upgradable

2-1. (ルート権限のついでに) Vim インストール。(Debian

# apt install vim

2-2. (ルート権限のついでに) sudoインストール(Debian

# apt-get install sudo

debianでsudoの、

# adduser username sudo

での権限の付与が、うまくいかない。

eutral is not in the sudoers file. 
This incident will be reported.

となってしまうので、「新しいLinuxの教科書」163P〜に倣って、次のように行いました。

$ sudo visudo

ここでnanoエディターが開いてしまう。

最終行にユーザ名(私だとneutral) ALL=(ALL) ALLと加えるだけなので、何とかなりそうですが こちら↓を見れば、およ?ということが解決して、無事に編集・終了できそうです。

Debian GNU/Linux Lennyでsudoを使えるようにする

Debian 7 ユーザーの追加とsudoでの実行許可 - Symfoware

補足ですが、debianでsudoの「sudo時のPATHの設定」は一応やりましたが、sudoersファイルを開いた時に、そうなっていたような、、、(ここは不確かで、すみません。)

これでやっとsudoが使えるようになりました。 (今後、su -は使いません。) ちゃんと、exitlogoutして一般ユーザーに戻って。

やっと、「2. 最初にやっておきたい設定」の仕上げ、システム最新化のコマンド

$ sudo apt -y upgrade

これでDebian10が最新の状態となりました。

3.公開鍵認証による SSH接続を設定する(やっと)際の注意点

3-1. ざっくり流れ

「クライアント アクセスしようとしている方 Mac」で、

  1. 公開鍵と秘密鍵の作成(ペアなので同時にできる。パスフレーズは設定しなかった。)
  2. 秘密鍵をクライアント側に登録する
  3. 公開鍵を「サーバー アクセスされる方 Linux(Debian) 」へ送る。

これ以前に、OpenSSHのインストール、.sshフォルダの作成が必要な場合もあります。

3-2. 事前準備(私の場合)

  • 「公開鍵認証による SSH接続を設定」の記事をいっぱい読んで、大まかな流れをとことんinput

  • 分からない語句・呪文のようなコマンドをおまじない状で使っていると詰まる(私の場合)ので、何をしているのか、かなり噛み砕いて理解した。

  • いろんな資料を読んでいると、いろんなコマンドが出てきて、混乱。実はやり方はひとつではなくいろいろあると、最初は分かっていなかった。(ので、たくさん資料があると混乱していた。)
    理解していくうちに、新しい資料もこれまでの事前知識の中に整理できるようになって、そうなるとたくさん読むことが、より理解することのに繋がったし、「良い記事」が分かるようになって来る。

3-3. 事前準備(みなさん必要)

  • 借りているさくらVPSIPアドレス・ユーザ名・ユーザのパスワード
  • 最低限のvimでファイルの編集・保存・終了ができる準備(これまで簡単なチュートリアルをやったことがあって、チートシート的なものを、手元に用意しておけばOK)

3-4. 語句(重要❗️

  • サーバー アクセスされる方 Linux(Debian)

  • クライアント アクセスしようとしている方 Mac

3-5. 難しポイント(ここに注意❗️

今やることは、「クライアント アクセスしようとしている方 Mac」でやること?それとも、 「サーバー アクセスされる方 Linux(Debian)」でやること?そこを間違えない。 作業は、両方のコンソールで行います。

時間と気持ちに余裕がある時にやることをお勧め。

「公開鍵認証によるSSH接続」は、いろんな要素が関わっているため、初心者が「途中で詰まる、またはやってみたら不成功」だった場合、どこに間違いがあってどこをどう戻したり訂正していけばよいのかを見つけて解決するのは、とても難しいと感じました。
ですので、落ち着いてゆっくり、できるだけストレートに成功できるように行うことをすすめます。(勉強仲間を見ていると、難なくできちゃう場合も多々あります。)

尚、使っているPCや環境の影響で、自力では無理な場合もあります。どうぞ頑張りすぎず、助けてもらってください。

3-6. 困ったらとりあえず、、、

  • アップデートする。'sudo apt update'
  • コマンドが打てない → sudoを付ける

3-7. 設定ファイル(/etc/ssh/sshd_config)でのこと

  • sshd_configとssh_configは違う。
    • sshd_config アクセスされる方(Linux)の設定ファイル
    • ssh_config アクセスする方(ローカル)の設定ファイル

今、設定しようとしているのはsshd_configです。

わたしは、設定ファイル(sshd_config)をエディターにコピーして修正しておき、それを眺めながらvimで修正しました。事件を起こさないよう、1本指タイピングぐらいの慎重さで。この方法だと、該当箇所が見つからないで焦ることもなくて、済みました。

✅ 編集するのは3ヶ所

  1. Port 22の22を適当な数字に変更。(ポートをデフォルトの22から変更。ログがたくさん出て大変なので。)
    →22を別の数字にすると、リモートログインの際にポート番号の指定が必要になる。

  2. PermitRootLogin yesのyesをnoに変更。(Rootログインを禁止する。)

  3. PasswordAuthentication yesのyesをnoに変更。(パスワードログインの禁止、公開鍵でのログインのみできるようにする。)

設定ファイルを書き換えたあとは、ターミナルを再起動(ウインドウ右上の✖️)か、sudo /etc/init.d/ssh restart

(参考)

unskilled.site

3-8.その後のメインの作業の参考URL

www.tooyama.org

REMOTE HOST IDENTIFICATION HAS CHANGED!と、エラーが出ました。

https://i.gyazo.com/e0d52e28cd3948c789c7c9b8010c4949.png

「以前に登録したキーがあるから、一致しないよ。」みたいなこと言ってます。

$ ssh-keygen -R hostname(IPアドレス)で解決します。

ssh -p 8022 -i ~/.ssh/id_rsa(これは秘密鍵のファイル名) neutral(ユーザー名)@<XXX.XXX.XX.XXX(hostname)>で、接続してみます。

その他

📝 -iオプションで秘密鍵ファイルを指定しなくても接続できてしまう

-iを指定しない場合、デフォルトファイルがあるか探しにいきます。id_rsaはデフォルトなので、指定しなくても接続できます。

📝 接続する際に、ポートの指定やiオプションを省くには

ssh_config(mac、ローカル、クライアント側の設定ファイル)に設定。

参考URL

(ありがとうございます。🙏)

インフラエンジニアじゃなくても押さえておきたいSSHの基礎知識 - Qiita

公開鍵暗号を用いてのSSH接続(きほん) - Qiita

SSH公開鍵認証で接続するまで - Qiita

SSHできないときのトラブルシューティング - Qiita

ssh(1) manページ

.ssh/configファイルでSSH接続を管理する - Qiita