サイトアイコン IT NEWS

UbuntuでSSHログインをセキュアに設定する方法(パスワード認証)

Ubuntu(22.04 LTS)を使用してSSHログインをセキュアに設定する方法について説明します。
SSHは重要なシステムへのアクセスに使われるため、用途によって公開鍵パスワード認証を組み合わせてセキュリティを強化します。
また、パスワード認証許可するユーザーを限定することで、より安全なログイン環境を実現します。

特定のユーザーのみSSHでパスワード認証

ユーザー一覧の確認方法

まずは、追加しようとするユーザーが既に存在していないか確認します。
現在のユーザー一覧を確認するには、ターミナルを開いて以下のコマンドを実行します。

$ cat /etc/passwd

このコマンドにより、システムに登録されている全ユーザーの情報が表示されます。

SSHでログインするユーザーの追加とパスワードの設定

次に、新しいユーザーを追加して、パスワードを設定する手順は以下の通りです。

$ sudo adduser new_user   # new_userは新しいユーザー名に置き換える
$ sudo passwd new_user    # new_userは同じく新しいユーザー名に置き換える

これで新しいユーザーが作成され、パスワードが設定されます。

パスワード認証の制限

特定のユーザーのみがパスワード認証を使用できるようにするため、SSH設定ファイルを編集します。

$ sudo nano /etc/ssh/sshd_config

エディタが開いたら、以下のように設定を変更します。

PasswordAuthentication yes    # これをコメントアウト(#を追加)して、パスワード認証を一時的に有効にする
Match User new_user           # new_userは先ほど作成したユーザー名に置き換える
PasswordAuthentication yes    # パスワード認証を有効にする

変更が終わったら、SSHサービスを再起動します。

$ sudo service ssh restart

これで、新しいユーザーだけがパスワード認証を使用できるようになりました。

【おまけ】ユーザーのホームディレクトリの自動作成

通常、新しいユーザーを追加するとホームディレクトリ自動的に作成されますが、もし手動で作成する必要がある場合は以下のコマンドを使用します。

$ sudo mkdir /home/new_user    # new_userはユーザー名に置き換える
$ sudo chown new_user:new_user /home/new_user

これで新しいユーザーホームディレクトリが作成され、適切な権限が与えられました。

ホームディレクトリが自動作成されない場合

以下は、/etc/login.defsファイルを編集してユーザーの作成時にホームディレクトリを自動で作成する方法です。
/etc/login.defs ファイルをroot権限で開きます。

# vi /etc/login.defs

ファイル内で「DEFAULT_HOME」の行を探します。
この行がコメントアウトされている場合(行の先頭に # がある場合)は、コメントアウトを解除して、「CREATE_HOME」の値を「yes」に設定します。

#
# Should login be allowed if we can't cd to the home directory?
# Default in no.
#
DEFAULT_HOME    yes

設定が完了したら、ファイルを保存して終了します。

まとめ

Ubuntu(22.04 LTS)でSSHログインをセキュアに設定する方法について説明しました。
公開鍵とパスワード認証を組み合わせて、安全なログイン環境を構築しましょう。

パスワード認証許可するユーザーを限定することで、セキュリティを強化します。
これらの設定を行うことで、あなたのUbuntuシステムはより安全になり、外部からの不正アクセスを防ぐことができます。

著:中島 能和
¥4,180 (2023/08/02 07:04時点 | Amazon調べ)

モバイルバージョンを終了