アンドロイド

パスワードなしのsshログインをセットアップする方法

目次:

Anonim

Secure Shell(SSH)は、クライアントとサーバー間の安全な接続に使用される暗号化ネットワークプロトコルであり、さまざまな認証メカニズムをサポートしています。 最も一般的な2つのメカニズムは、パスワードベースの認証と公開キーベースの認証です。

このチュートリアルでは、SSHキーベースの認証のセットアップ方法と、パスワードを入力せずにLinuxサーバーに接続する方法を示します。

SSHパスワードレスログインのセットアップ

LinuxでパスワードなしのSSHログインを設定するには、公開認証キーを生成し、リモートホスト ~/.ssh/authorized_keys ファイルに追加するだけです。

次の手順では、パスワードなしのSSHログインを構成するプロセスについて説明します。

  1. 既存のSSHキーペアを確認します。

    新しいSSHキーペアを生成する前に、既存のキーを上書きしたくないため、クライアントマシンに既にSSHキーがあるかどうかを確認します。

    次のlsコマンドを実行して、既存のSSHキーが存在するかどうかを確認します。

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

    既存のキーがある場合は、それらを使用して次の手順をスキップするか、古いキーをバックアップして新しいキーを生成できます。

    新しいSSHキーペアを生成します。

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

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

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

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

    次に、 ssh-keygen ツールは安全なパスフレーズの入力を求めます。 パスフレーズを使用するかどうかはあなた次第です。パスフレーズを使用することを選択した場合、セキュリティの層が追加されます。 ほとんどの場合、開発者とシステム管理者は完全に自動化されたプロセスに役立つため、パスフレーズなしでSSHを使用します。 パスフレーズを使用したくない場合は、 Enter 押して Enter

    Enter passphrase (empty for no passphrase):

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

    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 ます。

    remote_username@server_ip_address's password:

    ユーザーが認証されると、公開キーがリモートユーザー authorized_keys ファイルに追加され、接続が閉じられます。

    何らかの理由で 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のパスワード認証を無効にします。

SSHパスワード認証を無効にする前に、パスワードなしでサーバーにログインでき、ログインしているユーザーがsudo特権を持っていることを確認してください。

次のチュートリアルでは、sudoアクセスを構成する方法について説明します。

  1. sudo特権を持つユーザーまたはrootとして、SSHキーを使用してリモートサーバーにログインします。

    ssh sudo_user@server_ip_address

    SSH構成ファイル /etc/ssh/sshd_config 、次のディレクティブを検索して、次のように変更します。

    / etc / ssh / sshd_config

    PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no

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

    UbuntuまたはDebianサーバーで、次のコマンドを実行します。

    sudo systemctl restart ssh

    CentOSまたはFedoraサーバーで、次のコマンドを実行します。

    sudo systemctl restart sshd

結論

このチュートリアルでは、ユーザーパスワードを入力せずにリモートサーバーにログインできるようにするSSHキーベースの認証を設定する方法を学びました。 同じキーを複数のリモートサーバーに追加できます。

また、SSHパスワード認証を無効にして、サーバーにセキュリティレイヤーを追加する方法も示しました。

sshセキュリティ