Я хочу настроить ключи SSH для автоматизации scp
рабочие места. Мое текущее предположение состоит в том, что "автоматизация" подразумевает ключи SSH. без пароль, но я открыт для ваших предложений.
Я много гуглил, прежде чем задал этот вопрос. Вот что я нашел:
Таким образом, этот вопрос - главный кандидат на то, что Джефф Этвуд называет «Сделать Интернет лучше».
Для этого вопроса представьте себе этот конфиг:
user1@host1
user2@host2
user3@host3
user1@host1
и user2@host2
(и т. д.) user3@host3
с помощью scp
Я уже знаю о:
ssh-keygen
для генерации ключей SSH~/.ssh/id_dsa
имеет закрытый ключ~/.ssh/id_dsa.pub
имеет открытый ключ~/.ssh/id_dsa.pub
в ~/.ssh/authorized_keys
и тщательно установите права доступа к файлам~/.ssh/id_dsa.pub
с другим пользователем / хостом для использования с scp
В моем собственном тестировании между разными хостами / пользователями я знаю, что моя установка работает.
Что меня беспокоит, так это последствия для безопасности. И, признаюсь, я не администратор Linux и не эксперт по безопасности.
scp
, что, если тот же самый ключ просочился / утерян / украден другому подразделению?scp
против host3
так как user3
без пароль?Важные предположения, которые следует учитывать при ответах:
Я предполагаю, что есть способ ограничить доступ для определенного ключа SSH, но я не знаю, как это сделать. Может быть ~/.ssh/authorized_keys
варианты (о которых я только сегодня узнал)? Можно ли иметь несколько ключей SSH - давать разные ключи каждому источнику?
Посоветуйте, пожалуйста, правильный путь.
user3 @ host3 может иметь столько открытых ключей ssh, сколько им нравится, предоставляя доступ к своей учетной записи. Некоторые могут быть защищены паролем, другие - нет.
У каждого ключа есть публичная и приватная части. Ключи будут сгенерированы user1 и user2, публичная половина будет передана user3. Затем User3 может добавить эти ключи в свой файл authorized_keys. Защищен ли ключ паролем или нет, определяется закрытым ключом, а не открытым. Поэтому, если user3 получает открытый ключ от user1, у них нет возможности узнать, защищен ли он паролем или нет, AFAIK.
Вы можете выполнить некоторые ограничения из файла authorised_keys на отдельных машинах, как описано в разделе «authorized_keys: ограничение доступа» Вот
Скажем, например, вы хотели убедиться, что user1 может подключаться только с host1, а user2 с host2, вы можете вставить
from="host1" <user1 public key>
from="host2" <user2 public key>
тогда, если закрытый ключ скомпрометирован или украден для пользователя user1 или user2, они не смогут подключиться с любого другого компьютера.
Не уверен, насколько это хорошо, но, возможно, стоит изучить scponly который пытается предотвратить доступ к оболочке для пользователей, для которых вы хотите иметь доступ только к scp.