はじめに
ログインしてリモートサーバーを効果的に管理するには、SSH(Secure Shell)接続を確立することが不可欠です。暗号化されたキーは、安全な接続を確立するために使用されるアクセス資格情報のセットです。
このガイドでは、Ubuntu18.04でSSHキーを生成する方法を説明します。 また、パスワードを必要とせずにリモートサーバーに接続するためのSSHキーベースの認証の設定についても説明します。
前提条件
- Ubuntu 18.04を実行しているサーバー、UbuntuでSSHが有効になっている
- sudoのユーザーアカウント 特権
- ターミナルウィンドウ/コマンドラインへのアクセス(Ctrl-Alt-T)
UbuntuでのSSHキーの作成
ステップ1-SSHキーペアを生成する
クライアント システム(サーバーへの接続に使用しているシステム)では、キーコードのペアを作成する必要があります。
SSHキーコードのペアを生成する 、コマンドを入力します:
mkdir –p $HOME/.ssh
chmod 0700 $HOME/.ssh
ssh-keygen
これにより、SSHキーを保存するための隠しディレクトリが作成され、そのディレクトリのアクセス許可が変更されます。 ssh-keygen コマンドは2048ビットのRSAキーペアを作成します。
セキュリティを強化するには、RSA4096を使用してください:
ssh –keygen –t rsa 4096
すでにキーペアを生成している場合は、それらを上書きするように求められ、それらの古いキーは機能しなくなります。
システムは、セキュリティの追加レイヤーとしてパスフレーズを作成するように要求します。思い出に残るパスフレーズを入力し、 Enterを押します 。
ステップ2-公開鍵をUbuntuサーバーにコピーする
まず、接続するUbuntuサーバーのIPアドレスを取得します。
ターミナルウィンドウで、次のように入力します。
ip a
システムのIPアドレスは2番目のエントリにリストされています:
クライアント システムでは、 ssh-copy-idを使用します ID情報をUbuntuサーバーにコピーするコマンド :
ssh-copy-id [email protected]<server_IP>
server_IPを置き換えます サーバーの実際のIPアドレスを使用します。
サーバーに初めて接続する場合は、ホストの信頼性を確立できないというメッセージが表示される場合があります。
The authenticity of host '192.168.0.15 (192.168.0.15)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)?
はいと入力します Enterを押します 。
システムはクライアントをチェックします id_rsa.pubのシステム 以前に生成されたキー。次に、サーバーのパスワードを入力するように求められます ユーザーアカウント。入力して(システムはパスワードを表示しません)、 Enterを押します。 。
システムは〜/ .ssh / id_rsa.pubの内容をコピーします クライアントから システムを〜/ .ssh / authorized_keysに挿入します サーバーのディレクトリ システム。
システムは次のように表示する必要があります:
Number of key(s) added: 1
SSHキーを手動でコピーする別の方法
システムにssh-copy-idがない場合 コマンドを使用すると、SSH経由でキーを手動でコピーできます。
次のコマンドを使用します:
cat ~/.ssh/id_rsa.pub | ssh [email protected]_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"
ステップ3-リモートサーバーにログインします
リモートサーバーにログインするには、次のコマンドを入力します。
ssh [email protected]_IP
システムはSSHキーを使用して安全な接続をネゴシエートしているため、パスワードを要求するべきではありません。セキュリティパスフレーズを使用した場合は、入力するように求められます。そうすると、ログインします。
ステップ4-パスワード認証を無効にする
この手順により、セキュリティの層が追加されます。サーバーにログインしているのがあなただけの場合は、パスワードを無効にすることができます。サーバーは、保存されている公開鍵と一致する秘密鍵でのログインのみを受け入れます。
sshd_configを編集します ファイル:
sudo nano /etc/ssh/sshd_config
ファイルを検索して、 PasswordAuthenticationを見つけます オプション。
ファイルを編集し、値を noに変更します :
...
PasswordAuthentication no
...
ファイルを保存して終了し、SSHサービスを再起動します。
sudo systemctl restart ssh
セッションを終了する前に、SSHがまだ機能していることを確認してください:
ssh [email protected]_IP
すべてが機能する場合は、正常に終了して作業を再開できます。