У меня две машины: Host1 и Host2 которые подключены к общедоступному Интернету, но они также подключены через частную локальную сеть (поэтому оба хоста имеют общедоступный IP-адрес и частный IP-адрес).
- Host1: 192.168.0.1
- Host2: 192.168.0.2
Мне нужно автоматизировать сеанс SSH с Host1 на Host2 (т.е. без запроса пароля). Но из соображений безопасности мне нужно, чтобы это (автоматический вход) работало только для определенного пользователя, пытающегося подключиться только через частную локальную сеть.
Например:
если пользователь john @ Host2 пытается подключиться с Host1 через частную локальную сеть (т.е. соединение исходит из 192.168.0.1), тогда разрешите этому соединению использовать какой-то ключ аутентификации и не запрашивать пароль.
Если соединение не из частной локальной сети, не разрешайте автоматический вход в систему (т. Е. Необходимо ввести пароль).
Я буду признателен за подробные инструкции о том, как это настроить.
Спасибо.
Следовать за:
Глядя на приведенные ссылки, я до сих пор видел, что каждое решение требует вручную вводить какой-то ключ безопасности либо во время входа в систему (для ssh-agent), либо после перезагрузки машины (при использовании связки ключей).
Действительно ли возможно автоматизировать сеанс SSH, который работает независимо от того, был ли компьютер перезагружен или нет?
Я начинаю верить, что единственный способ - это автоматически вводить пароль с помощью какого-то инструмента, когда его запрашивает SSH ... и проблема решена.
Чтобы ответить на следующий вопрос, если вы создаете свою пару ключей SSH без пароля, вам не нужно будет вводить пароль для подключения к серверам.
Вы должны добавить pubkey в .authorized_keys в соответствии с этим абзацем:
Основные ограничения доступа
В качестве необязательного шага для ограничения использования открытого ключа для доступа к любым серверам оператор from может использоваться перед записями открытого ключа в файле ~ / .ssh / authorized_keys на серверах, чтобы ограничить, где клиентской системе разрешен доступ к сервер из. Без ограничения «от» любая клиентская система с соответствующими данными закрытого ключа сможет подключиться к серверу из любого места. Если пара ключей должна работать только тогда, когда клиентская система подключается с хоста под example.org, установите from = "*. Example.org" перед данными открытого ключа.
server$ cat ~/.ssh/authorized_keys from="*.example.org" ssh-rsa AAAAB3NzaC1…
В поле «от» вы должны указать IP-адрес (а) локального интерфейса. Использование этого плюс комбинация использования ключа ssh без пароля (что не рекомендуется, но для большинства систем будет работать нормально) позволит достичь того, что вы ищете.
Вы можете ограничить доступный адрес, по которому можно использовать логин на основе ключа.
См. Раздел о ключевых ограничениях доступа Вот.
Это можно сделать с помощью ключей ssh.
Как настроить ssh для аутентификации с использованием ключей вместо имени пользователя / пароля?