GNU/Linux >> Linux の 問題 >  >> Debian

Debian10でSSHキーを設定する方法

Secure Shell(SSH)は、クライアントとサーバー間の安全な接続に使用される暗号化ネットワークプロトコルであり、さまざまな認証メカニズムをサポートします。暗号化された接続を使用して、サーバー、X11トンネリング、ポート転送などでコマンドを実行できます。

パスワードと公開鍵ベースは、認証の2つの最も一般的なメカニズムです。

公開鍵を使用した認証は、デジタル署名の使用に基づいており、従来のパスワード認証よりも安全で便利です。

この記事では、Debian10システムでSSHキーを生成する方法について説明します。また、SSHキーベースの認証を設定し、パスワードを入力せずにリモートLinuxサーバーに接続する方法についても説明します。

DebianでのSSHキーの作成#

DebianクライアントマシンにSSHキーペアがすでにある可能性があります。新しいキーペアを生成する場合、古いキーペアは上書きされます。

次のlsを実行します キーファイルが存在するかどうかを確認するコマンド:

ls -l ~/.ssh/id_*.pub

上記のコマンドの出力にNo such file or directoryのようなものが含まれている場合 またはno matches found 、これはSSHキーがないことを意味し、次の手順に進んで新しいSSHキーペアを生成できます。

それ以外の場合、SSHキーペアがある場合は、それらを使用するか、古いキーをバックアップして新しいキーを生成することができます。

次のコマンドを入力して、コメントとしてメールアドレスを使用して新しい4096ビットのSSHキーペアを生成します。

ssh-keygen -t rsa -b 4096 -C "[email protected]"

出力は次のようになります:

Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):

Enterを押します デフォルトのファイルの場所とファイル名を受け入れます。

次に、安全なパスフレーズを入力するように求められます。パスフレーズを使用するかどうかは、あなた次第です。パスフレーズはセキュリティの層を追加します。

Enter passphrase (empty for no passphrase):

パスフレーズを使用したくない場合は、Enterを押すだけです。 。

全体の相互作用は次のようになります:

SSHキーペアが生成されたことを確認するには、次のコマンドを実行します。

ls ~/.ssh/id_*

コマンドはキーファイルを一覧表示します:

/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub

公開鍵をサーバーにコピーします#

SSHキーペアができたので、次のステップは、管理するサーバーに公開キーをコピーすることです。

公開鍵をリモートサーバーにコピーする最も簡単で推奨される方法は、ssh-copy-idを使用することです。 ツール。

ローカルマシンで次のコマンドを実行します。

ssh-copy-id remote_username@server_ip_address

remote_usernameを入力するように求められます パスワード:

remote_username@server_ip_address's password:

ユーザーが認証されると、公開鍵ファイルのコンテンツ(~/.ssh/id_rsa.pub )はリモートユーザー~/.ssh/authorized_keysに追加されます ファイル、接続が閉じられます。

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'username@server_ip_address'"
and check to make sure that only the key(s) you wanted were added.

ssh-copy-idの場合 ローカルマシンでユーティリティを使用できない場合は、次のコマンドを使用して公開鍵をコピーします。

cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

SSHキーを使用してサーバーにログインする#

この時点で、パスワードの入力を求められることなく、リモートサーバーにログインできるはずです。

テストするには、SSH経由でサーバーに接続してみてください:

ssh remote_username@server_ip_address

パスフレーズを設定していない場合は、すぐにログインします。それ以外の場合は、パスフレーズを入力するように求められます。

SSHパスワード認証の無効化#

サーバーにセキュリティの層を追加するために、SSHパスワード認証を無効にすることができます。

パスワード認証を無効にする前に、パスワードなしでサーバーにログインできること、およびログインに使用しているユーザーにsudo権限があることを確認してください。

リモートサーバーにログインします:

ssh sudo_user@server_ip_address

SSHサーバー構成ファイル/etc/ssh/sshd_configを開きます :

sudo nano /etc/ssh/sshd_config

次のディレクティブを検索し、次のように変更します。

/ etc / ssh / sshd_config
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

完了したら、ファイルを保存してSSHサービスを再起動します。

sudo systemctl restart ssh

この時点で、パスワードベースの認証は無効になっています。


Debian
  1. SSHキーを設定する方法

  2. Debian 11に静的IPを設定する-その方法は?

  3. Ubuntu18.04でSSHキーを設定する方法

  1. Debian 9システムでSSHキーを設定する-その方法は?

  2. Ubuntu16.04でSSHキーを設定する方法

  3. Debian で SSH キーを設定する方法

  1. CentOS7でSSHキーを生成および設定する方法

  2. パスワードなしのSSHログインを設定する方法

  3. Debian10でSSHキーを生成および設定する方法