こちらは、さくらインターネット Advent Calendar 2024の24日目の記事です。
私は2024年10月にさくらインターネットに入社しましたが、元々はフロントエンドエンジニアであり、運用観点でのLinux操作や周辺の技術に慣れていません。
そこで、自社のサービスを理解するためにさくらのクラウド超入門チュートリアルでハンズオンをしてみました。
その中で「普段Linuxに慣れている人だと当たり前かもしれないけど、自身がわかっていなかったこと」や「環境によってつまづいたポイント」をご紹介したいと思います。
前提
- OSはRocky Linux 9.4 64bit を指定しています
- クライアント側の環境はWindows10 + WSL2 (Ubuntu) です
- 業務でサーバーに触れないけど、簡単なCLIの操作であればできるという方を想定しています
-
ssh
などの基本的な用語は解説していません
-
サーバー作成後ssh接続してもパスワード認証が通らない
現象
TCP Wrapper で SSH のアクセス制限 - さくらのクラウド超入門・サーバ編(2) #チュートリアル - Qiita
こちらに記載された手順でssh接続を行っても、以下の状態になる。
-
ssh [root@IP]
してもパスワードが通らない - さくらのコンソールパネルから「コンソール」を使うとログインできる
- 公開鍵認証の場合はログインできる
- WSL2内だけでなく、Puttyなど他のクライアントからも接続できない
原因
Rocky Linuxの元となっているRHEL9系以降、sshを利用するためのデーモンであるsshd
の設定が変わっています。
(デーモン = 常駐プログラムのこと)
PermitRootLogin
のデフォルト値が yes
から prohibit-password
に変わっており、これはroot
でのログインにおいてパスワード認証を禁止し、公開鍵認証のみ利用できるようにする設定です。
解決策
「さくらのクラウド」公式アナウンスでも推奨されている通り、公開鍵形式による認証を利用してください。
どうしてもパスワード認証を試したい場合は、sshd_config
ファイルを編集することで実現できます。
-
vi /etc/ssh/sshd_config
→PremitRootLogin yes
に変更 - 設定が反映されない場合は
sudo systemctl restart sshd
でsshdを再起動
※ 「さくらのクラウド」では、自身のPCにある公開鍵をコントロールパネル上で登録・利用することで、楽に公開鍵認証を利用することができます
補足
サーバー側の認証が失敗した場合は、下記のログもご確認ください。
cat /var/log/secure/
今回のケースでは、パスワード認証が失敗した旨しか書かれていませんが、ログの保存場所を知っておくことで他のケースで役立つと思います。
参考
- https://happy-nap.hatenablog.com/entry/2022/10/08/220946
- https://yumidon.com/2020/09/20/「centos-8」sshでrootログイン禁止する時のめも/
get.docker.comを使ってDockerをインストールしようとするとエラーになる
現象
DockerのインストールとWordPressの起動 - さくらのクラウド超入門・サーバ編(3) #docker-compose - Qiita
こちらに記載された手順でget.docker.comを利用するとエラーが出る。
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
# ERROR: Unsupported distribution 'rocky’
解決策
get.docker.com のスクリプト自体が CentOS 8 系までしか対応していないようです。
設定を変更すると利用はできるものの、Rocky Linux 公式の Docker インストール手順を利用することをオススメします。
参考
ssh接続中に放置するとCLIが操作不能になる
現象
- CLI, ブラウザのコンソールともに操作を受け付けなくなる
- コントロールパネルから通常のシャットダウンをしても変化がない
- コントロールパネルから「強制シャットダウン」すると電源を落とすことができる
解決策
一定時間が経過すると自動的に接続が切れるようになっているため、クライアント側に ~/.ssh/config
を作成し、定期的にサーバーの生存確認を行う設定を追加することで回避できます。
touch ~/.ssh/config
Host *
ServerAliveInterval 60
参考
WSL2環境でVPN接続後、sshで接続エラーになる
現象
リモートアクセス(VPN)用アカウントを作成して接続する - VPCルータ編(3) #チュートリアル - Qiita
こちらに記載された手順でVPN接続を行った際、ssh接続できない。
解決策
VPNのMTUが1400なのに対し、WSL2側が1500となっており、送信量に差があるためにエラーが発生しているようです。
(MTU = 一回に送信できる最大のデータサイズ)
WSL2側でMTUを増やすよう設定します。
sudo ip link set eth0 mtu 1400
参考
-
https://blog.jicoman.info/2020/12/hangup-ssh-connection-using-wsl2/
- 設定がリセットされる場合は上記の記事にある起動時の設定を行ってください
おわりに
私自身がつまづいたポイントをご紹介しました。
さくらインターネットは事業ドメインが技術への理解と密接に結びついているため、技術について学ぶ機会が多くあります。そこが大変な点でもあり、楽しいところです。
私個人としても、Linuxに限らず技術を学ぶハードルを低くしていくことで、興味を持った方々が前向きに楽しく学び続けられるようにしていきたいなと思います。
さくらインターネットではまだまだ積極採用中です。ご興味を持たれた方はぜひご応募ください!