Как войти в систему как пользователь (созданный с помощью Ansible) внутри виртуальной машины, созданной с помощью VagranLinux

Ответить
Anonymous
 Как войти в систему как пользователь (созданный с помощью Ansible) внутри виртуальной машины, созданной с помощью Vagran

Сообщение Anonymous »

Я создал виртуальную машину с помощью Vagrant, пользователя внутри нее (с помощью Ansible) и настроил ключи SSH (также с помощью Ansible).
Vagrantfile
Vagrant.configure("2") do |config|
config.vm.provision "shell", inline: "echo Hello"

config.vm.define "vm1" do |vm1|
vm1.vm.network "private_network", ip: "192.168.20.11"
vm1.vm.box = "ubuntu/focal64"
end
end

Запустите виртуальную машину
vagrant up

Ниже приведены инвентарь и сборник сценариев Ansible:
inventory.ini
vagrant@192.168.20.11 ansible_ssh_private_key_file=/home/edith/vagrant/servers/.vagrant/machines/vm1/virtualbox/private_key ansible_ssh_common_args='-o StrictHostKeyChecking=no -o IdentitiesOnly=yes'

Я создал открытый/закрытый ключ с помощью ssh-keygen.
  • Закрытый ключ: ~/ .ssh/ansible
  • открытый ключ: ~/.ssh/ansible.pub
$ sudo cat ~/.ssh/ansible.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGXCAw8uJh10KraQm1xoI7umz+gho2xs5mPp477TnslF ansible

Следующий сценарий создает пользователя с именем Simone, настраивает SSH для этого пользователя и предоставляет ему привилегии sudo.
site.yml
---

- hosts: all
become: true
tasks:

- name: create simone user
user:
name: simone
groups: root
create_home: yes # Ensure the home directory is created

- name: debug public key path
debug:
msg: "{{ lookup('file', '/home/edith/.ssh/ansible.pub') }}"

- name: add ssh key for simone
tags: always
authorized_key:
user: simone
state: present
key: "{{ lookup('file', '/home/edith/.ssh/ansible.pub') }}"
exclusive: yes

- name: add sudoers file for simone
tags: always
copy:
src: sudoer_simone
dest: /etc/sudoers.d/simone
owner: root
group: root
mode: 0440

Я могу войти в систему вручную, используя пользователя Simone на виртуальной машине Vagrant vm1
$ vagrant ssh vm1

vagrant@ubunt-focal:~$ sudo su - simone
$ whoami
simone

$ cat ~/.ssh/authorized_keys
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGXCAw8uJh10KraQm1xoI7umz+gho2xs5mPp477TnslF ansible

Обратите внимание, что открытый ключ добавляется в файлauthorized_keys на виртуальной машине.
Однако, когда я пытаюсь войти в систему напрямую используя ssh на моей локальной машине, без входа в виртуальную машину, я получаю сообщение об ошибке.
$ ssh -i ~/.ssh/ansible simone@192.168.20.11
The authenticity of host '192.168.20.11 (192.168.20.11)' can't be established.
ED25519 key fingerprint is SHA256:N03pqpEeG5wyEDZDkpqCALvIgosGHJ4smZUpYNURSG4.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Failed to add the host to the list of known hosts (/home/edith/.ssh/known_hosts).
Received disconnect from 192.168.20.11 port 22:2: Too many authentication failures
Disconnected from 192.168.20.11 port 22


Подробнее здесь: https://stackoverflow.com/questions/784 ... ine-create
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»