公開鍵認証を使用すると、パスワードなしでSSH経由でサーバーにアクセスできます。公開sshキーをサーバーにコピーする2つの方法を次に示します。
SSHの基本的な概念を理解していると思います。 Linuxサーバーでsshが有効になっています。パソコンでsshキーを生成しました。次に、公開鍵をサーバーの承認済み鍵にアップロードして、アカウントのパスワードを常に入力しなくてもアクセスできるようにします。
このクイックチュートリアルでは、公開SSHキーをサーバーに追加する2つの方法を示します。
要件
それを見る前に、あなたがすでに持っているべきものについて明確にしましょう:
- 宛先サーバーでsshが有効になっている必要があります
- 公開および秘密のsshキーを生成する必要があります(コマンド ssh-keygen -t rsaを使用するだけです。 )
- サーバーにユーザーアカウントとパスワードが必要です。 rootアカウントでもかまいません。
- サーバーのIPアドレスを知っている必要があります
上記の4つの要件を確認したので、公開鍵認証の使用方法を見てみましょう。
認証はユーザーベースごとに行われるため、公開鍵は目的のユーザーの自宅に配置されます。
方法1:sshキーをサーバーに自動的にコピーする
最初の方法は、エンドユーザーが自分のパソコンの公開鍵をリモートサーバー上の許可された鍵のリストにコピーする方法です。
ここでは、[email protected]_of_serverを使用してリモートサーバーにログインできたと想定しています。アカウントのパスワードを要求され、サーバーに入ります。
サーバーに公開鍵を追加すると、パスワードを常に入力しなくてもログインできるようになります。
OpenSSHは、ssh公開鍵をリモートシステムにコピーするためのssh-copy-idと呼ばれる便利なツール呼び出しを提供します。必要なディレクトリやファイルも作成します。
前述したように、公開鍵認証を介してアクセスするサーバーのユーザー名とパスワードを知っておく必要があります。
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]_ADDRESS_OF_THE_SERVER
プロンプトが表示されたら、リモートサーバーのユーザーアカウントのパスワードを入力します。公開鍵は、リモートサーバーの適切なフォルダーに自動的にコピーされます。
公開sshキーのデフォルトの場所である〜/ .ssh/id_rsa.pubを使用しました。他の場所にある場合は、上記のコマンドで使用する必要があります。
方法2:公開sshキーをサーバーに手動でコピーする
最初の方法では、ユーザー側でアクションを実行しました。あなたがシステム管理者であり、サーバーがパスワードによるSSHログインを許可していないとします。サーバーにアクセスする唯一の方法は、SSH公開鍵認証を使用することです。
このような場合、エンドユーザーに公開鍵の提供を依頼できます。ここでできることは、.ssh / authorized_keysディレクトリを作成してから、ここに公開鍵をコピーすることです。
手順を示しましょう。
ステップ1:公開鍵を取得する
次のコマンドを入力して、エンドユーザーに公開鍵を提供するように依頼します。
cat ~/.ssh/id_rsa.pub
ssh-rsaで始まる長いランダムな文字列が表示されます:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ3GIJzTX7J6zsCrywcjAM/7Kq3O9ZIvDw2OFOSXAFVqilSFNkHlefm1iMtPeqsIBp2t9cbGUf55xNDULz/bD/4BCV43yZ5lh0cUYuXALg9NI29ui7PEGReXjSpNwUD6ceN/78YOK41KAcecq+SS0bJ4b4amKZIJG3JWm49NWvoo0hdM71sblF956IXY3cRLcTjPlQ84mChKL1X7+D645c7O4Z1N3KtL7l5nVKSG81ejkeZsGFzJFNqvr5DuHdDL5FAudW23me3BDmrM9ifUmt1a00mWci/1qUlaVFft085yvVq7KZbF2OP2NQACUkwfwh+iSTP [email protected]
このテキストは、電子メールまたはメッセージングツールを介して取得できます。通常、問題はありません。
ステップ2:ユーザーのホームディレクトリに(sysadminとして)sshディレクトリを作成します)
これらの新しいディレクトリとファイルは、自分のディレクトリ(root / sysadmin)ではなく、エンドユーザーのホームディレクトリに作成する必要があることに注意してください。
mkdir -p /home/user_name/.ssh && touch /home/user_name/.ssh/authorized_keys
次に、この/home/user_name/.ssh/authorized_keysファイルをVimなどのテキストエディターで開き、ユーザーの公開鍵をここに追加します:
vim /home/user_name/.ssh/authorized_keys
ファイルを保存して閉じます。ほぼ準備ができています。
ステップ3:ファイルに適切な権限を設定します
sshファイルに適切なファイル権限を設定することは非常に重要です。そうしないと、権限が拒否されました(公開鍵)などのエラーが表示されます。
まず、正しいファイル権限を設定してください:
chmod 700 /home/user_name/.ssh && chmod 600 /home/user_name/.ssh/authorized_keys
これらのファイルは、他のユーザーのrootまたは独自の管理者アカウントで作成しました。ユーザーの所有権を変更する必要があります:
chown -R username:username /home/username/.ssh
これで、エンドユーザーにサーバーへのログインを依頼できます。
問題が発生した場合、またはこのトピックに関する提案がある場合は、お知らせください。