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]-----+
公開鍵を登録(サーバー側)
公開鍵を公開して、サーバー側に登録します。
以下のファイルに鍵を登録します。(ファイルが存在しない場合は生成すること)
コマンド実行例
$ 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
rootユーザーのログイン禁止設定
rootユーザーのログインを禁止することで、不正ログイン時の被害を抑えられる可能性があります。
rootユーザーは管理者権限を持っているため、あらゆる設定/実行が可能です。
rootユーザーで不正ログインされてしまった場合は、何をされるかわかりません。(ログイン設定を変更されて正規ユーザーが締め出されることもあり得ます)
なので、rootユーザーはsshでログイン禁止として、管理者権限で操作したい場合は、一般ユーザーでsudo付与のコマンド実行により、操作することを推奨します。
コマンド実行例
$ sudo vi /etc/ssh/sshd_config
設定ファイル
PermitRootLogin no
パスワードによるログイン禁止設定
パスワード認証より鍵認証の方が、セキュリティが高いので、認証鍵が設定できたらパスワード認証は不要になります。
パスワード認証によるログインを禁止して、鍵認証によるログインのみを可能とする設定を行うことを推奨します。
コマンド実行例
$ 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の設定手順を紹介しました。
- ポート番号変更
- rootユーザーのログイン禁止設定
- 鍵認証の設定
- パスワードによるログイン禁止設定
SSHを利用する場合は、各種設定を行った方が、セキュリティ強度が高まります。
OSインストール後に設定したい設定事項の1つです。