728x90

/etc/ssh/sshd_config 파일 설정


SSH 접속이 가능하도록 설정

- /etc/ssh/sshd_config 파일의 PasswordAuthentication no 를 yes로 변경

 

현재 SSH 접속이 안 됨

 

파일 수정 방법

1. 앤서블 플레이북

2. 배시 쉘 프로그래밍

 

앤서블 플레이북을 이용하여 SSH 접속 설정


Vagrantfile

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant_API_Version = "2"

Vagrant.configure(Vagrant_API_Version) do |config|

  # Ansible-Node01
  	config.vm.define:"ansible-node01" do |cfg|
		cfg.vm.box = "centos/7"
		cfg.vm.provider:virtualbox do |vb|
			vb.name = "Ansible-Node01"
      		vb.customize ["modifyvm", :id, "--cpus",1]
      		vb.customize ["modifyvm", :id, "--memory",512]
		end
		cfg.vm.host_name = "ansible-node01"
		cfg.vm.synced_folder ".", "/vagrant", disabled: true
		cfg.vm.network "public_network", ip: "172.30.1.110"
		cfg.vm.network "forwarded_port", guest: 22, host: 19211, auto_correct: false, id: "ssh"
    	cfg.vm.provision "shell", path: "bash_ssh_conf_4_CentOS.sh"
		
	end
  
  # Ansible-Node02
  	config.vm.define:"ansible-node02" do |cfg|
		cfg.vm.box = "centos/7"
		cfg.vm.provider:virtualbox do |vb|
			vb.name = "Ansible-Node02"
      		vb.customize ["modifyvm", :id, "--cpus",1]
      		vb.customize ["modifyvm", :id, "--memory",512]
		end
		cfg.vm.host_name = "ansible-node02"
		cfg.vm.synced_folder ".", "/vagrant", disabled: true
		cfg.vm.network "public_network", ip: "172.30.1.120"
		cfg.vm.network "forwarded_port", guest: 22, host: 19212, auto_correct: false, id: "ssh"
    	cfg.vm.provision "shell", path: "bash_ssh_conf_4_CentOS.sh"
		
	end  
  
  
  
  # Ansible-Server
	config.vm.define:"ansible-server" do |cfg|
		cfg.vm.box = "centos/7"
		cfg.vm.provider:virtualbox do |vb|
			vb.name = "Ansible-Server"
		end
		cfg.vm.host_name = "ansible-server"
		cfg.vm.synced_folder ".", "/vagrant", disabled: true
		cfg.vm.network "public_network", ip: "172.30.1.100"
		cfg.vm.network "forwarded_port", guest: 22, host: 19210, auto_correct: false, id: "ssh"
		cfg.vm.provision "shell", path: "bootstrap.sh"
		cfg.vm.provision "file", source: "Ansible_env_ready.yml", destination: "Ansible_env_ready.yml"
		cfg.vm.provision "shell", inline: "ansible-playbook Ansible_env_ready.yml"
    	cfg.vm.provision "shell", path: "add_ssh_auth.sh", privileged: false
    	cfg.vm.provision "file", source: "Ansible_ssh_conf_4_CentOS.yml", destination: "Ansible_ssh_conf_4_CentOS.yml"
		cfg.vm.provision "shell", inline: "ansible-playbook Ansible_ssh_conf_4_CentOS.yml"
	end
  
end

 

bash_ssh_conf_4_CentOS.sh

#! /usr/bin/env bash

now=$(data +"%m_%d_%Y")
cp /etc/ssh/sshd_config /etc/ssh/sshd_config_$now.backup
sed -i -e 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
systemctl restart sshd

 

 

Ansible_ssh_conf_4_CentOS.yml

---
- name: Ansible_ssh_conf_4_CentOS
  hosts: localhost
  gather_facts: no
  
  tasks:
    - name: PasswordAuthentication change from no to yes
      replace:
        dest: /etc/ssh/sshd_config
        regexp: 'PasswordAuthentication no'
        replace: 'PasswordAuthentication yes'
        backup: yes
        
    - name: sshd restart to apply "PasswordAuthentication"
      service:
        name: sshd
        state: restarted

 

vagrant provision

ansible-server로 접속하여 통신 확인

SSH password: vagrant

 

설정 파일이 실제로 수정되었는지 확인: yes로 수정된 것을 확인할 수 있음

/etc/ssh/sshd_cofig

 

 

728x90

+ Recent posts