- 1. 概要
- 2. 鍵ファイル作成
- 3. sshd 鍵認証設定
- 4. 特定のユーザにのみ鍵を不要とする
- 5. /etc/ssh/sshd_config スペルチェック
1. 概要
「sshd」の基本的な設定について、記述します。
本記事の記載が、古くなったので更新します(2024年1月5日)。
「FreeBSD 14.0 RELEASE」では、「RSA」形式では受け付けなくなりました。
本ページは、下記のサイトを参考にさせていただきました。
「Ubuntu Server 22.04 LTS の SSH 鍵認証で RSA 認証が無効化されていて躓いた話」
「【 ssh-keygen 】コマンド――SSH の公開鍵と秘密鍵を作成する:Linux 基本コマンドTips」
2. 鍵ファイル作成
ユーザに対応する鍵を作成します。
ユーザ名「hogehoge」とすると、「hogehoge」ユーザで
cd
ssh-keygen -t ed25519
以前は、「-t」オプションに「rsa」を設定していましたが、「RSA」の鍵では、「sshd」のコンフィグレーションファイルにある行を加えないとアクセスできなくなったので、オプションを変更しました。
以下が、表示されます(コードの箇所は適当)。
「Enter file in which to save the key」の箇所は Enter を入力します(変更する場合は、お好きにどうぞ)。
「Enter passphrase」「Enter same passphrase again」の個所では、パスワードを入力します(エコーバックされませんのでご注意)。
Generating public/private ed25519 key pair.
Enter file in which to save the key (パス/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in パス/.ssh/id_ed25519
Your public key has been saved in パス/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:... ユーザ名@ホストドメイン名
The key's randomart image is:
+--[ED25519 256]--+
| .. |
| . . |
| o . + +o . |
| o = = B=.+ |
| . = = =S+= |
| E B =.= |
| B O . + o o |
| * . = . o = o |
| . . . . . +. |
+----[SHA256]-----+
これで、下記のファイルが作成されます。
「id_ed25519.pub」が、サーバ側に置くカギで、「id_ed25519」がクライアント側に置くカギです。
/home/hogehoge/.ssh/id_ed25519.pub
/home/hogehoge/.ssh/id_ed25519
サーバ側に置く鍵は、ファイル名がコンフィグレーションファイルの設定と異なるので、変更します。
cd ~/.ssh
mv id_ed25519.pub authorized_keys
3. sshd 鍵認証設定
「sshd」の設定ファイルを編集します。
「root」ユーザ権限で。
vi /etc/ssh/sshd_config
「ssh」でログインする際に、鍵認証を行うようにします。
末尾に下記の3行を加えます。
PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes
上から順に
・パスワードのみでは認証しない
・チャレンジパスワードでは認証しない
・認証に鍵を使用する
という設定です。
編集したら、下記のコマンドで「sshd」を再起動します。
service sshd restart
クライアント側で使用する鍵のファイルをクライアントに持っていき、サーバからは削除します。
「Tera Term」でログインします。
「Use RSA... key to login」を選択し「Private key file」ボタンを押下して、取得した鍵ファイルを選択します。
ユーザ名とパスワードまで入力するとログインできます。
4. 特定のユーザにのみ鍵を不要とする
これは折角、鍵認証を有効にしたのに特定のユーザにのみ鍵なしでの認証を許可する方法です。
注意して設定を行うこととあくまでも一時的な措置として使用してください。
/etc/ssh/sshd_config
の最下行に以下を記述します。
Match User ユーザ名
PasswordAuthentication yes
これで、「sshd」を再起動すると「ユーザ名」に記述したユーザは、鍵認証なしでログインできるようになります。
5. /etc/ssh/sshd_config スペルチェック
/etc/ssh/sshd_config
を編集したとき
sshd -t
でスペルチェックすることができます。
試しに、末尾に「Z」と一文字だけ置いた行をいれてみます。
$ sshd -t
/etc/ssh/sshd_config: line 150: Bad configuration option: Z
/etc/ssh/sshd_config line 150: Directive 'Z' is not allowed within a Match block
|
|