Как защитить ~ /.ssh / authorized_keys?

Проще всего выполнить небольшой скрипт для каждого файла, который проверяет вывод в кратком режиме file и печатает путь, если вывод file соответствует ELF или C source, путь передается как $0.

find . -type f -exec sh -c \
    'file -b "$0" | grep -q "^ELF\|^C source" && printf %s\\n "$0"' {} \;

Это решение имеет следующие преимущества перед оригиналом

- Тип f отфильтровывает каталоги немедленно, а не полагается на вывод file

Передача аргумента в виде {} позволяет избежать проблем, связанных с пробелами или новыми строками в имени файла.

2
07.04.2019, 03:42
3 ответа

В конфигурационном файле sshd есть опция:AuthorizedKeysFile

А с помощью токенов можно было бы установить вот так:

AuthorizedKeysFile /etc/sshd.keyfiles/%u.key

Следующий шаг — добавить эту папку в вашу систему Puppet/Ansible/etc и отслеживать изменения во всех файлах в этой папке.

1
07.11.2021, 16:51

Если у вас есть root-доступ на этом компьютере, вы можете попробовать сделать ваши ssh-файлы и каталог неизменяемыми с помощью командыchattr, например.:

sudo chattr +i ~/.ssh/authorized_keys
sudo chattr +i ~/.ssh

Это предотвратит изменение, переименование, удаление или перезапись файла авторизованных ключей. Поскольку только root может снять флаг неизменяемости, это предотвратит вставку ключа в ваш файл authorized_keysлюбым скриптом, который вы запускаете как обычный пользователь.

4
27.01.2020, 22:17

Как ssh защищен от подмены домашней папки с помощью «mount --bind»? Я сделал тест и смонтировал домашнюю папку с другой папкой на другом жестком диске. После использования команды ssh -copy -id ключ клиента корректно импортировался в ключи /home/.ssh/authorized _и после изменения прав доступа домашней папки с помощью 'sudo chmod 755 ~' это сработало как волшебство, и больше не нужно было вводить пароль.

0
07.11.2021, 16:32

Теги

Похожие вопросы