SSH にアクセスするには、パスワード ベースとキー ベースの 2 つの方法があります。 SSH 鍵ベースの認証は、秘密鍵と公開鍵を使用してサーバーにアクセスするための安全な方法を提供することを目的としています。
このガイドでは、Debian マシンを保護する次の方法を学習します。
<オール>ステップ 1:新しいユーザーを作成する
ユーザーをすでに作成している場合は、これをスキップできます。
次のコマンドを使用して、パスワードを無効にして新しいユーザーを作成します。
sudo adduser username --disabled-password
プロンプトに従い、Y
で確定します /home/username
のユーザーのホーム ディレクトリでユーザーを作成します。 .
新しいユーザーに sudo アクセスを許可する
新しいユーザーを sudo グループに追加して、ユーザーがコマンドを実行するための管理者権限を持つようにします。
sudo usermod -aG sudo username
これで、sudo 権限とパスワードが無効になった新しいユーザーが作成されました。
ステップ 2:ユーザーのパスワード認証を無効にする
/etc/ssh/sshd_config
を編集します 認証を設定するためのファイル
sudo nano /etc/ssh/sshd_config
以下を最後に追加してください。
Match User username PasswordAuthentication no
ファイルを保存し、SSH を再起動します。
sudo systemctl restart ssh
現在、ユーザーはパスワードを使用してログインできません。
ステップ 3:SSH キーを生成する
上記で作成したユーザーとしてログインします。
sudo su username
新しい .ssh
を作成 ssh キーを保持し、そこに移動するディレクトリ。
ここで sudo を使用しないでください。
mkdir .ssh cd .ssh
SSH キーを作成します。
ssh-keygen -m PEM -t rsa -b 4096 -C "your_email"
ここでは PEM
に慣れています RSA ベースのキーを生成する形式。 -m PEM
の場合 削除すると、OpenSSH キーが生成される可能性があります。
プロンプトが表示されたら、キーの名前を入力します。
パスフレーズをスキップしてセットアップを完了してください。
これで、.ssh ディレクトリ内に 2 つのファイルが作成されます。
filename.pub filename
filename.pub は公開鍵で、filename は秘密鍵です。
ステップ 4:SSH アクセス用の SSH キーを構成します。
SSH 接続を許可するには、公開鍵を authorized_keys
に追加する必要があります ファイル。
cat filename.pub >> authorized_keys
このコマンドは authorized_keys
という名前のファイルを作成します それに公開鍵の内容を追加します。
秘密鍵の内容をコピーし、これを使ってサーバーへの認証を行うことができます。
cat filename
このコマンドは、秘密鍵の内容を出力します。認証用に保存します。
ステップ 5:sudo の使用中にパスワード プロンプトを無効にする
デフォルトでは、他のユーザーで sudo ベースのコマンドを実行すると、システムはユーザーのパスワードを入力するように求めます。
パスワードは使用しないため、無効にする必要があります。
ユーザー シェルを終了し、ルート シェルに戻ります。
コマンドを実行して visudo
を入力します .
sudo visudo
以下を最後に追加してください。
username ALL=(ALL) NOPASSWD: ALL
ファイルを保存して終了します。
それでおしまい。これで、SSH キーのみを使用してログインできるユーザーができました。