GNU/Linux >> Linux の 問題 >  >> Ubuntu

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

Secure Shell(SSH)は、クライアントとサーバーの間に安全な接続を作成するためのネットワークプロトコルです。 SSHを使用すると、リモートマシンでコマンドを実行したり、トンネルを作成したり、ポートを転送したりできます。

SSHはさまざまな認証メカニズムをサポートしています。最も一般的な2つは、パスワードと公開鍵ベースの認証です。

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

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

UbuntuでのSSHキーの作成#

Ubuntuクライアントマシンに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を押してください 。

Enter passphrase (empty for no passphrase):

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

新しいSSHキーペアが生成されたことを確認するには、次のように入力します。

ls ~/.ssh/id_*
/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub

それでおしまい。 UbuntuクライアントマシンでSSHキーペアが正常に生成されました。

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

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

公開鍵をサーバーにコピーする最も簡単で推奨される方法は、ssh-copy-idを使用することです。 道具。ローカルマシンタイプ:

ssh-copy-id remote_username@server_ip_address

リモートユーザーのパスワードを入力するように求められます:

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構成ファイルを開きます:

sudo nano /etc/ssh/sshd_config

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

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

完了したら、ファイルを保存し、次のように入力してSSHサービスを再起動します。

sudo systemctl restart ssh

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


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

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

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

  1. Ubuntu18.04でSSHを有効にする方法

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

  3. Ubuntu で SSH 認証キーを構成する方法

  1. Ubuntu18.04でSSHキーを生成する方法

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

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