ホーム > ネットワーク管理 > ssh-copy-id

ssh-copy-id: SSH公開鍵のコピー

ssh-copy-idコマンドは、ローカルシステムのSSH公開鍵をリモートサーバーのauthorized_keysファイルに簡単かつ安全に追加するためのユーティリティです。これにより、パスワードなしでSSH接続を設定でき、手動で鍵をコピーする際のエラーを減らすことができます。

概要

ssh-copy-idは、SSH公開鍵認証の設定プロセスを自動化し、ユーザーがリモートサーバーにパスワードなしで安全にアクセスできるように支援します。このコマンドは、デフォルトで~/.ssh/id_rsa.pubまたは~/.ssh/id_dsa.pubのような公開鍵ファイルを検索しますが、特定の鍵ファイルを指定することも可能です。

主な機能

  • SSH公開鍵をリモートサーバーにコピー
  • authorized_keysファイルのパーミッションを自動設定
  • パスワードなしのSSH接続環境の構築をサポート
  • 複数回実行しても重複鍵の追加を防ぐ(冪等性)

主なオプション

ssh-copy-idコマンドは、鍵のコピープロセスを細かく制御するためのいくつかの便利なオプションを提供します。

鍵と接続の設定

実行モード

生成されたコマンド:

コマンドを組み合わせてみてください。

説明:

`ssh-copy-id` コマンドを実行します。

これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。

使用例

ssh-copy-idを使用してSSH公開鍵をリモートサーバーにコピーする様々なシナリオです。

基本使用法

ssh-copy-id user@remote_host

デフォルトの公開鍵(例: ~/.ssh/id_rsa.pub)を'user'アカウントの'remote_host'にコピーします。パスワードを入力するよう求められます。

特定の鍵ファイルを指定

ssh-copy-id -i ~/.ssh/my_custom_key.pub user@remote_host

指定された公開鍵ファイル(例: ~/.ssh/my_custom_key.pub)を使用して鍵をコピーします。

非標準SSHポートを使用

ssh-copy-id -p 2222 user@remote_host

リモートサーバーがデフォルトポート(22)以外のポート(例: 2222)でSSHサービスを実行している場合に使用します。

複数のオプションを組み合わせる

ssh-copy-id -i ~/.ssh/another_key.pub -p 2222 user@remote_host

特定の鍵ファイルを使用して非標準ポートで鍵をコピーする例です。

ヒントと注意点

ssh-copy-idを使用する際の役立つヒントと注意すべき事項です。

事前準備

ssh-copy-idを使用する前に、以下の点を確認してください。

  • 公開鍵の生成: まだSSH鍵ペアがない場合は、まず`ssh-keygen`コマンドで生成する必要があります。
  • リモートサーバーへのアクセス: リモートサーバーにSSHでアクセスできるパスワードまたは他の認証手段が必要です。ssh-copy-idは、この初期認証のためにパスワードを要求します。

パーミッションの問題

ssh-copy-idは、リモートサーバーの`~/.ssh`ディレクトリと`~/.ssh/authorized_keys`ファイルのパーミッションを自動的に正しく設定します。もし手動で鍵をコピーした場合は、`chmod 700 ~/.ssh`および`chmod 600 ~/.ssh/authorized_keys`コマンドを使用してパーミッションを正しく設定する必要があります。

冪等性 (Idempotency)

ssh-copy-idは、既にコピーされた鍵を再度追加しません。そのため、複数回実行してもauthorized_keysファイルに重複した鍵が蓄積されることはありません。これはスクリプトでの使用に非常に便利な特徴です。


同じカテゴリのコマンド