キー認証用のSSHキーを手動で追加する方法 - TechRepublic

キー認証用のSSHキーを手動で追加する方法 - TechRepublic

SSHキーをクライアントからサーバーにコピーする必要があるのに、ssh-copy-idが利用できない場合は、手動でコピーする必要があります。手順は以下のとおりです。

Secure Shell は、管理者として働く中で必ずと言っていいほど使うことになるツールの 1 つです。おそらく、今現在も定期的に使用していることでしょう。実際、デスクトップとサーバーの間で SSH キー認証を既に設定しているかもしれません。ssh-copy-id コマンドを使えば、その作業は驚くほど簡単になります。しかし、そのキーを手動でコピーしたい場合もあるでしょう。例えば、セキュリティ管理者がサーバーの PasswordAuthentication を no に設定することを要求しているとします (セキュリティ上の理由から)。このオプションは、キー認証以外のすべての SSH 認証を無効にします。このオプションが設定されている場合 (そして、そのオプションをオフにできない場合)、ssh-copy-id はサーバーにアクセスできず、必要なキーをコピーできません。その場合、キーを手動でコピーする必要があります。最も簡単な方法を説明します。

ここでは、クライアント側に必要なSSHキーが既に存在し、(既に述べたように)クライアントとサーバーの両方に同じユーザー名のユーザーアカウントがあることを前提としています。Ubuntu Server 16.04(サーバー)とElementary OS(クライアント)のプラットフォームでデモを行います。プラットフォームが異なる場合は、手順を若干変更する必要があるかもしれません。

公開鍵の場所

これから行うのは、クライアントマシンからサーバーへSSH公開鍵をコピーすることです。まず最初に、クライアントマシンからSSH公開鍵をコピーする必要があります。そのためには、サーバーにログインするユーザーでクライアントマシンにログインします。ログインしたら、次のコマンドを実行します。

cat ~/.ssh/id_rsa.pub

上記のコマンドは、ssh-rsaで始まり、 USERNAME@HOSTで終わる公開鍵全体を出力します(USERNAMEはユーザー名、HOSTはマシンのホスト名です)。この文字列全体をコピーし、サーバーに転送してください(USBドライブ、メール、またはサーバーから入手できる手段を使ってください)。

公開鍵の保存

鍵をサーバーに保存したら、鍵文字列(ssh-rsaで始まり、USERNAME@HOSTで終わる文字列)を/home/USERNAME/.ssh/authorized_keysファイル(USERNAMEは対象のユーザー)にコピーします。このファイルが存在しない場合は、 nano ~/.ssh/authorized_keysコマンドで作成してください。ファイルを開いたら、ssh文字列をコピーし、ファイルを保存して閉じます。

ログイン

この時点で、クライアントマシンに戻り、コマンドssh -v USERNAME@HOST (USERNAME はユーザー名、HOST はサーバーのIPアドレスまたはドメイン) を実行すると、SSHキーのパスワード (ユーザーパスワードではありません) の入力が求められるはずです。これで完了です。サーバーからクライアントにSSHキーを手動でコピーし、SSHキー認証を使用してSSH経由でサーバーにアクセスできるようになりました。

学ぶべきことはまだまだたくさんある

セキュアシェルは非常に強力で柔軟性の高いツールです。まず最初にすべきことの一つは、sshのマニュアルページ(man sshコマンドを実行)を読んで、この必須ツールの基礎をしっかりと理解することです。

記事をシェア

こちらもご覧ください

  • SSHキー認証の設定方法
  • 魚を使ってコマンドをより早く思い出す方法
  • sshfsを使用してリモートファイルシステムを操作する方法
  • Linuxホームディレクトリの紹介
  • SHA-1の終わりですが、私は大丈夫です
ジャック・ウォーレンの画像

ジャック・ウォーレン

ジャック・ウォーレンは、TechRepublic、The New Stack、Linux New Mediaなどで受賞歴のあるライターです。20年以上にわたり様々なトピックを執筆し、オープンソースの熱心な推進者でもあります。ジャック・ウォーレンに関する詳細は、ウェブサイトjackwallen.comをご覧ください。

Tagged: