Có một vài bước để chuẩn bị chức năng này. Đầu tiên, lấy giá trị của tham số. Có thể có nhiều lựa chọn hơn, ví dụ: theo mặc định
vỏ> Sudo sshd -T | grep ủy quyềnkeysfile
tệp khóa ủy quyền .ssh/ủy quyền_keys .ssh/ủy quyền_keys2
Ví dụ, lấy cái đầu tiên
- vỏ: sshd -T | grep ủy quyềnkeysfile
đăng ký: kết quả
trở thành sự thật
- bộ_thực tế:
AuthorizedKeysFile: "{{ (result.stdout|split)[1] }}"
cho
AuthorizedKeysFile: .ssh/authorized_keys
Tham số AuthorizedKeysFile có thể chứa %u
và %h
. Nhìn thấy Vị trí của tệp khóa được ủy quyền
%h sẽ được thay thế bằng thư mục chính của người dùng được xác thực và %u bằng tên đăng nhập của người dùng
Chuẩn bị cơ sở dữ liệu của các thư mục nhà
- nhận được:
cơ sở dữ liệu: passwd
Theo mặc định, mô-đun nhận được lưu trữ cơ sở dữ liệu mật khẩu trong từ điển getent_passwd. Trang chủ là thuộc tính thứ 4, ví dụ:
- gỡ lỗi:
var: getent_passwd['root'][4]
cho
getent_passwd['root'][4]: /root
Bây giờ, với dữ liệu
auth_keys:
gốc: [key1, key2, key3]
bạn có thể kiểm tra chức năng
- vỏ: sshd -T | grep ủy quyềnkeysfile
đăng ký: kết quả
trở thành sự thật
- bộ_thực tế:
AuthorizedKeysFile: "{{ (result.stdout|split)[1] }}"
- nhận được:
cơ sở dữ liệu: passwd
- gỡ lỗi:
tin nhắn: |
đường dẫn: {{_đường dẫn}}
khóa: {{ item.value }}
vòng lặp: "{{ auth_keys|dict2items }}"
lọ:
_user: "{{ item.key }}"
_home: "{{getent_passwd[item.key][4] }}"
_akf: "{{ AuthorizedKeysFile|regex_replace('%u', _user)|
regex_replace('%h', _home) }}"
_path: "{{ (_akf.0 == '/')|ternary(_akf, [_home, _akf]|join('/')) }}"
cho
thông báo: |-
đường dẫn: /root/.ssh/authorized_keys
phím: ['key1', 'key2', 'key3']
Nếu bạn thay đổi tham số
vỏ> Sudo sshd -T | grep ủy quyềnkeysfile
tệp khóa được ủy quyền /etc/ssh/authorized_keys/%u
trò chơi sẽ nhận được vị trí chính xác của tệp khóa được ủy quyền
thông báo: |-
đường dẫn: /etc/ssh/authorized_keys/root
phím: ['key1', 'key2', 'key3']