Ansible ユーザーとSSH鍵を指定する方法

環境
RHEL 7.9
Ansible 2.10

操作方法
1.ssh鍵を生成する

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ ssh-keygen -t rsa -f cft_key
$ ssh-keygen -t rsa -f cft_key
$ ssh-keygen -t rsa -f cft_key

秘密鍵のcft_keyと公開鍵のcft_key.pubファイルが生成されます。

2.サーバーに鍵を配置する

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ scp ./cft_key.pub root@[ホスト名]:~/.ssh/
$ scp ./cft_key.pub root@[ホスト名]:~/.ssh/
$ scp ./cft_key.pub root@[ホスト名]:~/.ssh/

3.authorized_keysに鍵を登録します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ ssh root@[ホスト名]
パスワードを入力
$ chmod 700 ~/.ssh
$ cat ~/.ssh/cft_rsa.pub >> authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ rm ~/.ssh/cft_rsa.pub
$ ssh root@[ホスト名] パスワードを入力 $ chmod 700 ~/.ssh $ cat ~/.ssh/cft_rsa.pub >> authorized_keys $ chmod 600 ~/.ssh/authorized_keys $ rm ~/.ssh/cft_rsa.pub
$ ssh root@[ホスト名]
パスワードを入力
$ chmod 700 ~/.ssh
$ cat ~/.ssh/cft_rsa.pub >> authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ rm ~/.ssh/cft_rsa.pub

4.rootログインを利用する設定
$ vi /etc/ssh/sshd_config
以下の行をコメントアウトして保存します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#RSAAuthentication yes
#AuthorizedKeyFile .ssh/authorized_keys
#PermitRootLogin yes
#RSAAuthentication yes #AuthorizedKeyFile .ssh/authorized_keys #PermitRootLogin yes
#RSAAuthentication yes
#AuthorizedKeyFile .ssh/authorized_keys
#PermitRootLogin yes

5.SSHDを再起動する

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ service sshd restart
$ service sshd restart
$ service sshd restart

6.鍵認証でログインできることを確認する

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ ssh -i ./cft_key root@[ホスト名]
$ ssh -i ./cft_key root@[ホスト名]
$ ssh -i ./cft_key root@[ホスト名]

7.AnsibleのPlaybook実行時に引数で指定する場合は、以下のように-uと–private-keyオプションを利用します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ ansible-playbook -i [インベントリファイル名] [Playbookファイル名] -u root --private-key="./cft_key"
$ ansible-playbook -i [インベントリファイル名] [Playbookファイル名] -u root --private-key="./cft_key"
$ ansible-playbook -i [インベントリファイル名] [Playbookファイル名] -u root --private-key="./cft_key"

 

Ansible

Posted by arkgame