Ansibleでのssh-keygenコマンドとその使用方法


  1. ssh-keygenコマンドの使用: ssh-keygenコマンドは、SSHプロトコルで使用される公開鍵と秘密鍵のペアを生成するために使用されます。以下は、ssh-keygenコマンドの基本的な構文です:

    ssh-keygen

これにより、デフォルトの設定で新しい鍵ペアが生成されます。秘密鍵は"~/.ssh/id_rsa"に保存され、公開鍵は"~/.ssh/id_rsa.pub"に保存されます。

  1. Ansibleでのssh-keygenの使用: Ansibleでは、ssh-keygenコマンドを使用して鍵ペアを生成し、それをリモートサーバーにデプロイすることができます。以下のAnsibleのタスクは、ssh-keygenを使用して鍵ペアを生成し、リモートサーバーに公開鍵をデプロイする例です:

    • name: Generate SSH key pair command: ssh-keygen -t rsa -b 4096 -f ~/.ssh/mykey -N ""

    • name: Copy public key to remote server authorized_key: user: remote_user key: "{{ lookup('file', '~/.ssh/mykey.pub') }}" state: present

この例では、ssh-keygenコマンドを使用して"~/.ssh/mykey"という名前の新しい鍵ペアを生成し、公開鍵をリモートサーバーにコピーしています。"remote_user"はリモートサーバー上のユーザー名です。

  • name: Generate and protect SSH key pair command: ssh-keygen -t rsa -b 4096 -f ~/.ssh/mykey -N "" vars_prompt:

    • name: vault_password prompt: "Enter Ansible Vault password" private: yes
  • name: Encrypt private key with Ansible Vault command: ansible-vault encrypt ~/.ssh/mykey

この例では、鍵の生成時にAnsible Vaultのパスワードを入力するように求め、生成された秘密鍵をAnsible Vaultで暗号化しています。

以上が、Ansibleを使用してssh-keygenコマンドを実行し、生成された鍵ペアを利用する方法のいくつかです。これにより、セキュアなデプロイメントやサーバーの自動化が容易になります。