ssh-copy-idコマンドを使った簡単に公開鍵をリモート側にコピーする方法をご紹介!

ssh-copy-idコマンドを使った簡単に公開鍵をリモート側にコピーする方法をご紹介!
基本情報技術者試験の試験対策はこちら>>

ssh-copy-idで公開鍵をコピーしてみよう


今回は、ssh-copy-idで公開鍵をコピーする方法について説明します。

ssh接続のためには、公開鍵はリモートsshサーバに渡す必要があります。公開鍵を渡す方法の一つとして、公開鍵の内容をcatし、標準出力をコピーして、リモートsshサーバ側の~/.ssh/authorized_keysファイルに貼り付ける方法があります。

これでは手間なので、ssh-copy-id一発で公開鍵をリモート側に配置できます。

ここでは、WSL2(Windows Subsystem for Linux 2)のSUSE Linuxからubuntuにssh接続します。ssh-copy-idでSUSE Linuxからubuntuに公開鍵を転送してみます。ssh-copy-idに興味のある方はぜひご覧ください。

環境情報

WSL2のSUSE Linuxからubuntuにssh接続します。事前にWindows PCにSUSE Linuxとubuntuをインストールしておいてください。リモートの情報は以下です。

ローカルの情報は以下です。

基本的な使い方

ssh-copy-idの基本的な使い方を紹介します。ここでは、秘密鍵と公開鍵は作成済みの状態とします。ローカルからリモートに公開鍵を転送します。初期状態では、以下のようにコピーに失敗します。

リモート側のsshの設定を変更します。sshd_configファイルを編集します。念のため、事前にバックアップを生成してください。

「PasswordAuthentication no」を「PasswordAuthentication yes」に変更します。

diffコマンドで差異を確認してみましょう。

設定を変更したら、リモート側のsshサービスを再起動します。

再度、ssh-copy-idコマンドを実行します。ユーザー名のpasswordを入力してください。

コマンドが成功したら、リモート側で~/.sshフォルダを確認してください。authorized_keysが生成されていることが分かります。

ローカルからリモートにssh接続してください。ssh接続できることが確認できます。

公開鍵の指定

公開鍵のファイル名がデフォルトと異なる場合などは、公開鍵のパスを指定する必要があります。iオプションで公開鍵のパスを指定します。

コマンドをテストする(公開鍵を登録しない)

公開鍵が正しくコピーされるかテストできます。公開鍵は登録しません。オプションを指定します。実際に公開鍵を登録する前に確認することができます。

公開鍵の情報が表示されますので、正しい公開鍵か否か、事前に確認できます。

ポート番号の指定

デフォルトのポート番号(22番)でない場合、ポート番号を指定する必要があります。pオプションを指定します。

まとめ

いかがでしたでしょうか。ssh-copy-idで公開鍵をコピーする方法について紹介しました。ssh-copy-idの基本的な使い方から、各種オプションの使い方について、実際のコマンドを交えて紹介しました。

ぜひご自身でコマンドを書いて、理解を深めてください。

インフラエンジニア専門の転職サイト「FEnetインフラ」

FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。

転職をお考えの方は気軽にご登録・ご相談ください。