chrisandClaude Opus 5.5 67c1086e2c Role common: add task sftpd.yml for chrooted SFTP access.
- group 'sftpusers' (GID 200 or next free), sshd drop-in
  /etc/ssh/sshd_config.d/90-sshd-SFTP.conf (Match Group, ChrootDirectory %h,
  ForceCommand internal-sftp), PasswordAuthentication via
  'sftp_password_authentication'
- new sftp users (UID 201 or next free) with root owned chroot home,
  upload dir and root owned authorized_keys (always created)
- existing users (e.g. www-data, suexec users) can be added to the group;
  chroot requirements of their home are checked, not changed
- passwords: update_password defaults to 'always', password of users with
  shell access is never changed
- controlled by 'chrooted_sftpd_present' (default: false), tag 'sftpd'
- add empty sftpd section to all host_vars *-common.yml

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-14 10:42:42 +01:00
2024-08-08 00:27:09 +02:00
2025-01-21 16:53:58 +01:00
2026-10-12 18:51:07 +02:00
2023-06-16 20:43:34 +02:00
2023-04-06 11:53:54 +02:00
2023-04-06 11:53:54 +02:00
2019-06-28 02:28:50 +02:00
2019-06-28 02:28:50 +02:00
2024-12-04 17:57:55 +01:00
2019-06-28 02:28:50 +02:00
2019-06-28 02:28:50 +02:00
2019-06-28 02:28:50 +02:00
2024-08-02 17:25:47 +02:00
2022-06-15 02:10:25 +02:00
2019-06-28 02:28:50 +02:00
2022-01-18 11:07:14 +01:00
2024-11-17 01:30:15 +01:00
2024-11-17 01:30:15 +01:00
2019-06-28 02:28:50 +02:00

# ====================
# Encrypting content with Ansible Vault
# ====================

# see:
#     https://docs.ansible.com/ansible/latest/vault_guide
#
#     https://docs.ansible.com/ansible/latest/vault_guide/vault_encrypting_content.html

# ----------
# encrypt / decrypt variables / strings
# ---------

# encrypt string
#
string=nSLIgazSj8DLu2Sy0l


ansible-vault encrypt_string $string && echo

# output of the above command is:
#
!vault |
          $ANSIBLE_VAULT;1.1;AES256
          33656466386662303431383037386564666466643364376233623261346235363866656438396532
          6161373832366430653235343034653166303561383934390a666432356463386461656363303234
          61386330643664666539343336313666346261323435386264396137366533626539396434303463
          3961666632646337360a666662323063316134623332333239616332343939326331383632646139
          66316333653232383764376264616238323861323530343734653564393737386139


# decrypt the encrypted string:
#
echo -e '$ANSIBLE_VAULT;1.1;AES256
33656466386662303431383037386564666466643364376233623261346235363866656438396532
6161373832366430653235343034653166303561383934390a666432356463386461656363303234
61386330643664666539343336313666346261323435386264396137366533626539396434303463
3961666632646337360a666662323063316134623332333239616332343939326331383632646139
66316333653232383764376264616238323861323530343734653564393737386139' | ansible-vault decrypt && echo

# output shoud be:
#
Decryption successful
nSLIgazSj8DLu2Sy0l


# ----------
# encrypt / decrypt file
# ----------

ansible-vault encrypt <file-name>

ansible-vault decrypt <file-name>
S
Description
No description provided
Readme
8 MiB
Languages
Vim Script 73.1%
Shell 15.5%
Jinja 9%
Python 2.4%