Ubuntu18.04 LTSにSSHしてセキュリティ設定をしよう!

50種類以上のIT教材を無料で使える!
0円から学習できるオンラインITスクール「侍テラコヤ」
→さっそく登録する

みなさんこんにちは!UbuntuにSSHしたいなと思ったことはありませんか?また、SSHはできたけど設定などいまいちわからず適当にやってしまったなんてことはないですか?

UbuntuにSSHするときは基本的にデフォルトではセキュリティはめちゃめちゃ低いです。適当に設定していてはいつ破られるかわかりませんね。そこで本日は、

  • sshとは
  • 実際にSSHする方法
  • 最低限のセキュリティ対策

ということを初心者の方でもわかりやすいよう、丁寧に解説していきますので、UbuntuのSSHを考えている方は是非参考にしていただければ幸いです!

sshとは

それではまずは、簡単にSSHとはということについてみていきましょう。sshとはSecure Shellの略で、安全にリモートコンピュータと通信するためのプロトコルです。

もっとわかりやすくいうと、遠隔でサーバやマシンにアクセスするときにより安全に行うための通信方法です。

実際の開発現場や、個人の開発でもSSHすることは非常に多く、SSHのスキルはエンジニアとしてほぼ必須といえるので必ずマスターしておきましょう。


【なかなかエラーが解決できない…そんな悩みを解決します!】

登録無料で始められるプログラミングスクール「侍テラコヤ」

・回答率100%のQ&A掲示板でエラーを解決!
現役エンジニアとのオンライン相談で悩みを解決!
・50種類以上の教材で複数言語を習得!

侍テラコヤについて詳しく見る

マシンの説明

実際にSSHする前に、今回使うマシンの説明をしておきます。今回はSSHする側にMacOS、SSHされる側に、Ubuntu18.04LTSを用いていきます。

また、Ubuntu環境はVirtualBoxにて構築していますが、実機にて構築している方も大きく変わるところはありませんので、気にせず進めていただけたら幸いです。

余談ですが、新たにUbuntuを導入したいという方は迷わず18.04LTSを使いましょう。最新でかつ5年間のサポートがついているので今導入するならこちらを選んでおけば間違いありませんね。

導入方法は以下の記事で説明しているので参考にしてみてください。

「Ubuntu Desktop日本語Remix」をVirtualBoxにインストールする方法
更新日:2023年3月21日

SSHできるようにしよう!

さて、それでは、ここから実際にSSHするまでの方法を見ていきます。

SSH Serverを導入しよう

SSHは名前から見てわかる通りShellの一種なので、SSHするには専用のServerをインストールする必要があります。今回はopenssh-serverというものをインストールしていきます。なのでUbuntu側でターミナルを開き、

このように

sudo apt-get install openssh-server

としてやりましょう。本来はこの段階で、IPアドレスを確認すればSSHできるようになります。しかし、今回はVirtulBoxを使っているのでそっちの方を設定していきます。

VirtualBoxを使ってない方は飛ばして、次次章SSHするから参照してください。

VirtualBoxをSSHできるように設定しよう

画像のように、設定、ネットワーク、高度な設定、ポートフォワーディングを選択しましょう。

画像のように、右側の追加から適宜設定しましょう。

SSHする

VirtulaBoxの設定が終わったところでMacの方でSSHしていきます。今回SSHに使う情報としては、

  • Ubuntuの名前: kai
  • IPアドレス: localhost
  • ポート: 3434

なので、「ssh 名前@IPアドレス -p ポート」として各自適切なものを挿入して、SSHしていきます。

kai:~ kai$ ssh kai@localhost -p 3434
The authenticity of host '[localhost]:3434 ([127.0.0.1]:3434)' can't be established.
ECDSA key fingerprint is SHA256:y+409QUogpukLnBDEe0RUAVSHIl0m6GgY9WiWuJg21k.
Are you sure you want to continue connecting (yes/no)? yes

yes,noを聞かれるので、yesとしてエンターを押します。また、VirtualBoxを使っていない方は、ポートはまだ設定していないと思うのでなくて大丈夫です。すると、パスワードをもとめられ、

このように、SSHできています。


【なかなかエラーが解決できない…そんな悩みを解決します!】

登録無料で始められるプログラミングスクール「侍テラコヤ」

・回答率100%のQ&A掲示板でエラーを解決!
現役エンジニアとのオンライン相談で悩みを解決!
・50種類以上の教材で複数言語を習得!

侍テラコヤについて詳しく見る

セキュアな設定をしよう

さて、実際にSSHしてみましたが、現在の状態ではセキュリティがかなり低いです。VirtualBox以外の場合はポートも設定していませんからね。最低限やるセキュリティ対策は以下の4つです。

  • ポートの設定
  • rootログインの禁止
  • 鍵認証のための鍵作成
  • パスワードログインの禁止

ポートの設定は、VirtualBoxであればすでに終わっていますが、それ以外の方のために説明していきます。

ポートの設定

ポートの設定は「/etc/ssh/sshd_config」にて行います。Ubuntuにて、「vi /etc/ssh/sshd_config」として、編集していきましょう。

このように、# Port 22となっているところがあるので、コメントアウトして、1-65535の中で好きなものを設定しましょう。とはいえ、1-1023番はウェルノンポートと言って、主要なプロトコルが登録されています。

また、1024~49151番は登録ポートと言って、他アプリケーションが登録していることもあるので競合を避けるためにも、1-1023、1024~49151番は使わないほうが良いでしょう。

今回はテスト用で他アプリケーションなどは使っていないので利用していますが、本番環境では49152-65535番を利用するようにしましょう。

rootログインの禁止

rootは全ての権限を持っていて危険なので、「vi /etc/ssh/sshd_config」の後に「/root」と打つと、検索できるので、

PermitRootLoginをコメントアウトし、noにしましょう。

鍵認証

次に鍵認証を行なっていきます。手順的には、Macの側で秘密鍵を作成し、Ubuntu側に公開鍵を渡します。それによってMac側の鍵とUbuntu側の鍵が一致してログインできるようになります。

実際の鍵の作り方は以下の記事で書かれているので参考にしてみてください。

【Linux】SSHとは?Ubuntu Serverに接続してみよう
更新日:2023年3月21日

パスワードログインの禁止

さて、最後に鍵認証ができるようになった今、パスワードでログインする必要はないので塞いでしまいましょう。同じように、「vi /etc/ssh/sshd_config」の後に「/Pass」と打つと、検索できるので、

PasswordAuthenticationをコメントアウトしnoにしましょう。

まとめ

いかがでしたか。ubuntuへのSSHから、最低限のセキュリティ設定まで詳しく見てきました。ローカルでの運用ではなく、本運用する場合は必ずセキュリティ設定を行っておきましょう!それでは!!

プログラミング学習中、
誰かへ相談したいことはありませんか?

SAMURAI TERAKOYA

プログラミングはエラーの連続。作業を進めるなかで誰かに教えてほしい場面は多いですよね。

そんな悩みを解決できるのが、侍テラコヤです。登録無料で始められて、現役エンジニアとオンラインで相談できるほか、回答率100%のQA掲示版でプログラミングに関する悩みを解決します!

気になる方はぜひ詳細をご覧ください。

→侍テラコヤの詳細をみる

Writer

かい

日向徹かこよすぎか

kaikaikai8217@gmail.com

あなたの目的に合わせた
SAMURAI ENGINEERの運営サービス

SAMURAI ENGINEER Pro

未経験でも挫折しないプログラミングスクール

詳細はこちら

SAMURAI TERAKOYA

日本最大級のサブスク型オンラインITスクール

詳細はこちら

SAMURAI ENGINEER Freelance

「一人で稼げる」スキルを身につける

詳細はこちら
Close