前回に引き続き、AlmaLinux の基本的な設定をしていきます。今回は、SSH の設定と、 ユーザーを作成し、秘密キー、公開キーを作成していきます。おまけに、locate コマンドをインストールします。

※ 作業は root で行います。


sshd_config 設定

sshd_config のを設定していきます。サーバーとして使用するので、コンソールではなく リモートから作業する方が多い気がするので、リモートからの root のログインができないようにします。
デフォルトでは、秘密キー、公開キーを使ってログインできるようになっています。
ssh サーバーの設定ファイルは「/etc/ssh」ディレクトリにあります。ファイルは「sshd_config」です。
vi などのエディタを使って、ファイルを編集します。「ssh_config」という一字違いのファイルもあるので気を付けて下さい。
「PermitRootLogin」という項目のパラメーターを設定します。

PermitRootLogin prohibit-password

「PermitRootLogin」は、下記4つのパラメーターが設定できます。

  • yes
  • prohibit-password
  • forced-commands-only
  • no
今回は、ssh でリモートから root でログインできないように「no」を設定します。

PermitRootLogin no

sshd_config のマニュアル
sshd_config(5) - OpenBSD manual pages

1.6. OpenSSH のセキュリティーの強化

ファイルの編集が完了したら、sshd を再起動します。
以上で、リモートからsshd で root でのログインができなくなります。
※ 詳しくは動画から

systemctl restart sshd



秘密キー・公開キー作成

ユーザーを作成し、作成したユーザーの秘密キー、公開キーをコマンドラインで作成していきます。
※ Windows、Mac などでも作成できるツールはあります。

まずは、ユーザーを作成していきます。今回は、グループIDが、「1000」、グループ名が「wizard」
ユーザーIDが、「1000」、ユーザー名「wizard」としてユーザーを作成していきます。
※ ユーザー、グループは任意に設定して下さい。

グループ → ユーザー の順に作成してきます。

grupadd -g [Group ID] グループ名

useradd -u [User ID] -g [Group ID] ユーザー名

su コマンドを使って作成したユーザーに切り替えます。

su - ユーザー名

今回は、リモートから秘密キー・公開キーを使ってアクセスのみしか考えていないので、 「passwd」コマンドを使ってパスワードは設定しません。コンソールからアクセスが必要になる場合は、パスワードを設定する必要があります。

ssh-keygen コマンドを使って、ユーザーの秘密キー、公開キーを作成します。
ED25519 というアルゴリズムを使います。github でもこのアルゴリズムでキーを作成しています。

ssh-keygen -t ed25519 -C "Mail Address"

Github Docs
新しい SSH キーを生成して ssh-agent に追加する

ホームディレクトリ直下に「.ssh」というディレクトリが作成されるので、そのなかに秘密キーと公開キーがあります。

  • id_ed25519(秘密キー)
  • id_ed25519.pub(公開キー)
公開キーを使って、「authorized_keys」というファイルを作成します。

※ 詳しくは動画から

cat id_ed25519.pub > authorized_keys

または

cp id_ed25519.pub authorized_keys

authrized_keys ファイルのパーミッションを変更します。

chmod 600 authorized_keys

リモートからアクセスするので、ここで作成した、秘密キー、公開キーは、USBメモリーなどにバックアップをとって削除します。
Windows からの端末からアクセスする場合は、USBメモリーから秘密キーをコピーして使っていきます。



locate コマンドインストール【おまけ】

locate コマンドをインストールします。
locate コマンドとは、ファイルを検索するコマンドです。
同様のコマンドに、find コマンドがありますが、find コマンドは、実際にファイルを探しに行きますが、 locate コマンドは、 ファイルのデータベースを作成し、検索する際は、データベースを参照します。

locate コマンドは、下記のように使います。

locate [ファイル名 または、ファイル名の一部]



ファイルのデータベースを更新するには、「updatedb」コマンドを使います。

updatedb

次は、Rocky Linux をインストールします。AlmaLinux との違いを見ていきます。