Прежде чем я запустил в своем текущем задании (в малом бизнесе), мой офис не имел никакого брандмауэра в сети, и буквально ничто никогда не сохранялось. Теперь, когда я вошел в систему как преданный системный администратор / one-man-IT-department, я делал то, что я могу для изменения этого. После объяснения моему боссу, насколько уязвимый мы были, он позволил мне настраивать некоторые серверы резервного копирования, один из которых в его доме.
Прямо сейчас я пытаюсь получить все набор так, чтобы я мог автоматизировать ежедневные резервные копии. Я планирую использовать rsync через ssh, чтобы сделать это. Для пользы безопасности, а также для простоты автоматизации, я планировал отключить ssh вход в систему пароля и только использовать rsa ключевую проверку. Ну, если бы мне установили rsa пароль, затем я должен был бы все еще ввести пароль, и это - проблема.
Не наличие rsa пароля делают вещи значительно менее безопасными? Я - единственный человек в компании, у которого есть любой вид подсказки о такого рода вещи, таким образом, я не слишком волнуюсь по поводу кого-то звонящего терминалу на моей машине (который всегда блокируется, когда я - AFK, так или иначе), и ssh-луг в один из серверов резервного копирования и наносящий любой ущерб. Я все еще очень, очень плохо знаком с миром системного администрирования, и это - мой первый раз, делая что-либо как это, и я не хочу покидать любые дыры в установке защиты.
Рассматриваемые компьютеры здесь запускают Ubuntu 10.10, Сервер SME и OSX 10.6, если это так или иначе делает какой-либо вид различия.
Как Вы знаете, преимущество, которое пароль дает Вам, состоит в том, что, если кто-то может считать Ваш закрытый ключ, они 'не могут' использовать его.
Если кто-то может получить доступ к тому закрытому ключу, необходимо принять как очевидное, что у них есть доступ (редактор)/, пошел на компромисс, любые машины настраиваются с открытым ключом. Вещи как .bash_history или .ssh/config только делают это легче, даже если Ваш .ssh/known_hosts запутывается.
Наличие пароля на Вашем ключе не является концом света, вот 3 идеи попытаться помочь Вам защитить себя немного лучше несмотря на это. (Важная персона является второй, считайте что если ничто иное),
Только используйте тот же ключ через все машины и пользователей. Генерируйте каждого пользователя на каждой машине (который должен сделать такого рода вещь), ее собственная пара ключей. Это позволит Вам удержать контроль на том, что может к ssh где.
При добавлении ключа к authorized_keys файлу можно заблокировать его вниз, чтобы только смочь выполнить определенную команду или использовать его только от определенного хоста.
Посмотрите man ssh
и поиск команды = и от =
Синтаксис - что-то как:
from="1.2.3.4",command="/path/to/executable argument" ssh-rsa key name
т.е. вытолкайте 'rsync' там, и только 'rsync' мог назвать Ваш ключ, и только от IP-адреса 1.2.3.4. Несколько дюйм/с могут быть разделены ,
. Имена хостов также поддерживаются.
Другой вещью, которая приходит на ум, является директива 'AllowUser' в Вашем sshd_config
AllowUsers
Это ключевое слово может сопровождаться списком шаблонов имени пользователя, разделенных пробелами. Если указано, вход в систему позволяется только для имен пользователей, которые соответствуют одному из шаблонов. '*' и'?' может использоваться в качестве подстановочных знаков в шаблонах. Только имена пользователей допустимы; числовой идентификатор пользователя не распознан. По умолчанию вход в систему позволяется для всех пользователей. Если шаблон принимает форму USER@HOST затем, ПОЛЬЗОВАТЕЛЬ и ХОСТ отдельно проверяются, ограничивая логины конкретных пользователей от конкретных хостов.
Это в основном гарантирует, что пользователь может только войти в систему от определенного местоположения. (хотя это принимает подстановочные знаки также), не собирающийся решать все Ваши проблемы, но это будет, по крайней мере, мешать другим.
Можно использовать что-то как связка ключей для создания наличия пароля менее болезненным. Это немного более безопасно, чем использование входа в систему без пароля и может использоваться в сочетании с другими ответами здесь. Ответ PriceChild был довольно хорош.
Лично я использую DSA не RSA, главным образом потому что это - то, что я всегда использовал, и я знаю, что он 'просто работает', но теория, которую я предполагаю, является тем же. Вы могли заменить dsa
с rsa
в ниже.
На источнике:
$ ssh-keygen -t dsa
Затем скопируйте содержание .ssh/id_dsa.pub
файл в .ssh/authorized_keys
в учетной записи пользователя на месте назначения.
Затем необходимо просто смочь к ssh между источником и местом назначения без паролей.