MENU
やすひら
やすひらと申します。
長靴を履いたタヌキ(ITエンジニア)です。
モノ作りの楽しさを発信中。
X(旧Twitter)のフォローもお願いします。

[Linux]SSHの設定手順

SSHは暗号化技術を利用したログイン方法です。
SSHは各種設定を行うことで、セキュリティを強化することができます。
本記事では、SSHの設定手順を紹介します。

やすひら

SSHの設定手順を紹介します

この記事でわかること
  • SSHとは
  • SSHの設定手順
目次

SSHとは

Linuxサーバーへのログイン方法としてSSHで接続する方法があります。
SSHを利用すると、ログインする際の通信が暗号化されるため、セキュアなログインが可能です。
SSHでは認証鍵によるログインが可能で、パスワード入力を必要としないログインができます。

SSHの設定手順

SSHは通信自体は暗号化されていますが、初期設定では第3者にログインされる可能性が高くなり、セキュリティ観点で危険性が高いです。
SSHの設定を適宜行うことで、よりセキュアな通信でログインすることができます。

鍵認証の設定

sshのログイン方法は、パスワード認証によるログインと鍵認証によるログインがあります。
パスワード認証は、ユーザーがキー入力でユーザー名とパスワードを入力して、認証を行う方式です。
鍵認証方式は、あらかじめ鍵生成を行い、ログイン時に鍵を使用して認証を行う方式です。
ユーザーが設定するパスワードの文字数より、鍵情報の方が文字数が多い可能性が高いので、鍵認証の方がセキュリティ観点で安全性が高く、不正ログインを防止する可能性が高くなります。

認証鍵を生成(クライアント側)

クライアント側で鍵を生成します。
鍵の長さは1024と4096が一般的ですが、長い方がよりセキュリティ強度が高いです。

コマンド実行例

$ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa
Your public key has been saved in /home/user/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:f5hc+awy3LfQ0Nm9om5r2OUR5r6Il9qw2mSkp4A6QP0 user@machine000
The key's randomart image is:
+---[RSA 4096]----+
|                 |
|                 |
|  .              |
| . .         = o.|
|.   .   S.  * + o|
|.   .E  oo + O  .|
|.  . . . *B.B.=. |
| ..   . *.OB+=o  |
| ..    o.=*Oooo. |
+----[SHA256]-----+

公開鍵と秘密鍵が生成されます。
生成時にパスフレーズの入力を要求されます。未入力により省略することも可能です。

秘密鍵 : id_rsa
公開鍵 : id_rsa.pub

公開鍵を登録(サーバー側)

公開鍵を公開して、サーバー側に登録します。
以下のファイルに鍵を登録します。(ファイルが存在しない場合は生成すること)

コマンド実行例

$ vi ~/.ssh/authorized_keys

設定ファイル

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDrrNkJkdJr5eUDEs56bFr68jKNQVFvzSYG7D3g/3+dn7q1EtTe3jFDt165+GBQXq6ul9t+nUCA5KS2wvPHJkkZYOuNxx0+RSQjY0vbeXC5DYeV5FcRsOwOFTaDYQe5NONWneUo3JCmGKMM6QIaF6+huMT9LiCZ0FsisgYiWd0Scal+S6qrNb7kp9WN1yTtU7D1kT7ydPnzD7T/Pm0MK+uLBU81XyVfESTCYg3cj2fnZIAmRPkk/11kz1ZZKFYlP8+0ZTkDaeR1AdUDEhdVcIwstz3UqVVkR53Odg952Y8JRXKiTvR3DZi81nz4hWYnxdodKHbDGhgpioOT25x+bGDy9VbANbh+IGtnrW/N29xk3xvtGGv/d525dnjXcB9Mn9bYBAEWPd5fmYXXzxZ3c+i/ZHZkk43ikaOw2A7CIqWuC17k5lzTk4537bmc2LPpuWQpUBzoBGLPb/7xW80uXYzJfx+cuTw+p2n7zn2jRsUNDhfhuGYJyTPkxOYRVhoP0e9HD3yhXnas+HUbcQTzezuYCnbx8kL6Vf8MWlbFjQOZHOPuyc09sA2E0YhEz6yYIoUZcUuPwsTjG8xrrP6Vh83GJV0c6eJ1Tm3zioUj5jqrp7SApx1FCBOT9C7t+eOjoKsBSKThnGF+woa+vgktLQjqks7nux2/KCL4Kutv00Wttw== user@machine000

認証鍵を生成/登録することで、鍵認証によるログインが可能となります。

ポート番号変更

sshの使用ポート番号は22をデフォルトで使用しております。
sshのデフォルトポート番号は共通認識であるため、ポート番号22を狙った攻撃をうけやすくなります。
ポート番号を変更しておくことで、セキュリティを高めることが可能です。
任意で使用可能なポート番号は1024-65535ですので、任意の値の範囲から採番して設定します。

コマンド実行例

$ sudo vi /etc/ssh/sshd_config

設定ファイル

Port 65535

任意のポートは、未使用ポートの中から採番して設定します。

ポートを変更すると、SSHに関連するコマンドのポートが全て変更されます。
ssh/scp/sftp等でコマンド実行する際は、変更後のポートを設定します。

rootユーザーのログイン禁止設定

rootユーザーのログインを禁止することで、不正ログイン時の被害を抑えられる可能性があります。
rootユーザーは管理者権限を持っているため、あらゆる設定/実行が可能です。
rootユーザーで不正ログインされてしまった場合は、何をされるかわかりません。(ログイン設定を変更されて正規ユーザーが締め出されることもあり得ます)
なので、rootユーザーはsshでログイン禁止として、管理者権限で操作したい場合は、一般ユーザーでsudo付与のコマンド実行により、操作することを推奨します。

コマンド実行例

$ sudo vi /etc/ssh/sshd_config

設定ファイル

PermitRootLogin no

rootユーザーのログインを不可に設定すると、rootユーザーではログインできなくなります。

パスワードによるログイン禁止設定

パスワード認証より鍵認証の方が、セキュリティが高いので、認証鍵が設定できたらパスワード認証は不要になります。
パスワード認証によるログインを禁止して、鍵認証によるログインのみを可能とする設定を行うことを推奨します。

コマンド実行例

$ sudo vi /etc/ssh/sshd_config

設定ファイル

PasswordAuthentication no

パスワードログインを禁止すると、パスワード認証によるログインが不可となります。

SSHの接続確認

SSHで接続確認して設定された内容が反映されているかを確認します。

コマンド実行例

$ ssh -i ~/.ssh/id_rsa -p 65535 user@111.111.111.111
Welcome to Ubuntu 18.04.6 LTS (GNU/Linux 4.15.0-213-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

  System information as of Wed Jun 26 14:05:27 JST 2024

  System load:  0.13               Processes:           103
  Usage of /:   45.4% of 49.04GB   Users logged in:     1
  Memory usage: 16%                IP address for eth0: 111.111.111.111
  Swap usage:   0%

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

Expanded Security Maintenance for Infrastructure is not enabled.

0 updates can be applied immediately.

142 additional security updates can be applied with ESM Infra.
Learn more about enabling ESM Infra service for Ubuntu 18.04 at
https://ubuntu.com/18-04

New release '20.04.6 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Wed Jun 26 14:05:13 2024 from 111.111.111.112
$ logout
Connection to 111.111.111.111 closed.

SSHでポート指定で鍵認証によりログインできました。

まとめ

SSHの設定手順を紹介しました。

SSHの設定は
  • ポート番号変更
  • rootユーザーのログイン禁止設定
  • 鍵認証の設定
  • パスワードによるログイン禁止設定

SSHを利用する場合は、各種設定を行った方が、セキュリティ強度が高まります。
OSインストール後に設定したい設定事項の1つです。

  • URLをコピーしました!
目次