Connect to host and set up initial config
This commit is contained in:
parent
990e0d5752
commit
4cd8623115
|
|
@ -0,0 +1,2 @@
|
||||||
|
[defaults]
|
||||||
|
inventory = ./inventory
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
[windows]
|
||||||
|
192.168.1.26 ansible_user=backup ansible_shell_type=cmd
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC02bdkH4DjCA9/l6MRLME9kW6Jrxcu37Ut384l2QXdA danielbrasholt@gmail.com
|
||||||
|
|
@ -0,0 +1,88 @@
|
||||||
|
# This is the sshd server system-wide configuration file. See
|
||||||
|
# sshd_config(5) for more information.
|
||||||
|
|
||||||
|
# The strategy used for options in the default sshd_config shipped with
|
||||||
|
# OpenSSH is to specify options with their default value where
|
||||||
|
# possible, but leave them commented. Uncommented options override the
|
||||||
|
# default value.
|
||||||
|
|
||||||
|
#Port 22
|
||||||
|
#AddressFamily any
|
||||||
|
#ListenAddress 0.0.0.0
|
||||||
|
#ListenAddress ::
|
||||||
|
|
||||||
|
#HostKey __PROGRAMDATA__/ssh/ssh_host_rsa_key
|
||||||
|
#HostKey __PROGRAMDATA__/ssh/ssh_host_dsa_key
|
||||||
|
#HostKey __PROGRAMDATA__/ssh/ssh_host_ecdsa_key
|
||||||
|
#HostKey __PROGRAMDATA__/ssh/ssh_host_ed25519_key
|
||||||
|
|
||||||
|
# Ciphers and keying
|
||||||
|
#RekeyLimit default none
|
||||||
|
|
||||||
|
# Logging
|
||||||
|
#SyslogFacility AUTH
|
||||||
|
#LogLevel INFO
|
||||||
|
|
||||||
|
# Authentication:
|
||||||
|
|
||||||
|
#LoginGraceTime 2m
|
||||||
|
#PermitRootLogin prohibit-password
|
||||||
|
#StrictModes yes
|
||||||
|
#MaxAuthTries 6
|
||||||
|
#MaxSessions 10
|
||||||
|
|
||||||
|
#PubkeyAuthentication yes
|
||||||
|
|
||||||
|
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
|
||||||
|
# but this is overridden so installations will only check .ssh/authorized_keys
|
||||||
|
AuthorizedKeysFile .ssh/authorized_keys
|
||||||
|
|
||||||
|
#AuthorizedPrincipalsFile none
|
||||||
|
|
||||||
|
# For this to work you will also need host keys in %programData%/ssh/ssh_known_hosts
|
||||||
|
#HostbasedAuthentication no
|
||||||
|
# Change to yes if you don't trust ~/.ssh/known_hosts for
|
||||||
|
# HostbasedAuthentication
|
||||||
|
#IgnoreUserKnownHosts no
|
||||||
|
# Don't read the user's ~/.rhosts and ~/.shosts files
|
||||||
|
#IgnoreRhosts yes
|
||||||
|
|
||||||
|
# To disable tunneled clear text passwords, change to no here!
|
||||||
|
PasswordAuthentication no
|
||||||
|
#PermitEmptyPasswords no
|
||||||
|
|
||||||
|
# GSSAPI options
|
||||||
|
#GSSAPIAuthentication no
|
||||||
|
|
||||||
|
#AllowAgentForwarding yes
|
||||||
|
#AllowTcpForwarding yes
|
||||||
|
#GatewayPorts no
|
||||||
|
#PermitTTY yes
|
||||||
|
#PrintMotd yes
|
||||||
|
#PrintLastLog yes
|
||||||
|
#TCPKeepAlive yes
|
||||||
|
#UseLogin no
|
||||||
|
#PermitUserEnvironment no
|
||||||
|
#ClientAliveInterval 0
|
||||||
|
#ClientAliveCountMax 3
|
||||||
|
#UseDNS no
|
||||||
|
#PidFile /var/run/sshd.pid
|
||||||
|
#MaxStartups 10:30:100
|
||||||
|
#PermitTunnel no
|
||||||
|
#ChrootDirectory none
|
||||||
|
#VersionAddendum none
|
||||||
|
|
||||||
|
# no default banner path
|
||||||
|
#Banner none
|
||||||
|
|
||||||
|
# override default of no subsystems
|
||||||
|
Subsystem sftp sftp-server.exe
|
||||||
|
|
||||||
|
# Example of overriding settings on a per-user basis
|
||||||
|
#Match User anoncvs
|
||||||
|
# AllowTcpForwarding no
|
||||||
|
# PermitTTY no
|
||||||
|
# ForceCommand cvs server
|
||||||
|
|
||||||
|
Match Group administrators
|
||||||
|
AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
---
|
||||||
|
- name: Ping host
|
||||||
|
ansible.windows.win_ping:
|
||||||
|
- name: Copy SSH key to host
|
||||||
|
ansible.windows.win_copy:
|
||||||
|
src: id_ed25519.pub
|
||||||
|
dest: "C:\\ProgramData\\ssh\\administrators_authorized_keys"
|
||||||
|
- name: Hide backup user from login screen
|
||||||
|
ansible.windows.win_regedit:
|
||||||
|
path: "HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\SpecialAccounts\\UserList"
|
||||||
|
name: backup
|
||||||
|
type: dword
|
||||||
|
data: 0
|
||||||
|
- name: Upload SSH config to host
|
||||||
|
ansible.windows.win_copy:
|
||||||
|
src: sshd_config
|
||||||
|
dest: "C:\\ProgramData\\ssh\\sshd_config"
|
||||||
|
- name: Restart sshd service
|
||||||
|
ansible.windows.win_service:
|
||||||
|
name: sshd
|
||||||
|
state: restarted
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
- hosts: windows
|
||||||
|
user: backup
|
||||||
|
gather_facts: no
|
||||||
|
roles:
|
||||||
|
- setup
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
# Installing OpenSSH
|
||||||
|
|
||||||
|
In settings, select Apps & Features -> Optional features -> add new
|
||||||
|
|
||||||
|
Select OpenSSH server from the list.
|
||||||
|
|
||||||
|
Reboot the machine.
|
||||||
|
|
||||||
|
When back in, open `services.msc` and enable the OpenSSH Server service.
|
||||||
|
|
||||||
|
# Adding local administrator account
|
||||||
|
|
||||||
|
```bash
|
||||||
|
net user backup /add
|
||||||
|
net localgroup Administrators backup /add
|
||||||
|
net user backup *
|
||||||
|
```
|
||||||
|
|
||||||
|
# Connecting from HOST
|
||||||
|
|
||||||
|
To connect with SSH and Ansible, the HOST machine must have `sshpass` installed.
|
||||||
|
|
||||||
|
It is also necessary to have `ansible.windows` installed:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ansible-galaxy collection install ansible.windows
|
||||||
|
```
|
||||||
|
|
||||||
|
# Pre-config of host
|
||||||
|
|
||||||
|
|
||||||
Loading…
Reference in New Issue