Как запустить и использовать ssh-agent как службу systemd?

Я полагаю * вы пытаетесь связаться с vpn-сервер по общедоступному адресу и ожидает, что это соединение будет проходить через туннель.

Этого не произойдет, ваш клиент должен подключиться к вашему vpn-серверу через общедоступную сеть, чтобы установить и поддерживать туннель.

У вас есть несколько вариантов, самый простой из которых - настроить своего рода DNS с разделенным горизонтом с помощью Dnsmasq.

  1. Установите Dnsmasq на сервере
  2. Установите запись / etc / hosts , указывающую имя вашего сервера на адрес vpn
  3. Вместо того, чтобы нажимать DNS 8.8.8.8 для клиенты нажимают DNS 10.254.1.1

Таким образом, ваши клиенты будут разрешать ваше имя сервера внутренне, пока они подключены к vpn.

Если вы хотите, чтобы сам сервер продолжал преобразовывать свое собственное имя в общедоступный адрес, используйте дополнительный файл hosts для Dnsmasq вместо общесистемного файла в / etc / hosts .


* : если предположение неверно, весь ответ бесполезен, поэтому, пожалуйста, дайте мне знать: -)

14
24.01.2017, 21:36
2 ответа

Чтобы создать службу systemd ssh-agent, вам нужно создать файл в ~/.config/systemd/user/ssh-agent.service, потому что ssh-agent изолирован от пользователя.

[Unit]
Description=SSH key agent

[Service]
Type=simple
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
ExecStart=/usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK

[Install]
WantedBy=default.target

Добавьте SSH_AUTH_SOCK DEFAULT="${XDG_RUNTIME_DIR}/ssh-agent.socket"в ~/.pam_environment.

Наконец, включите и запустите эту службу.

systemctl --user enable ssh-agent
systemctl --user start ssh-agent

И, если вы используете версию ssh выше 7.2. echo 'AddKeysToAgent yes' >> ~/.ssh/config

Это укажет ssh-клиенту всегда добавлять ключ к работающему агенту, поэтому нет необходимости добавлять его заранее по ssh.

Обратите внимание, что при создании файла ~/.ssh/configвам может потребоваться запустить:

chmod 600 ~/.ssh/config или chown $USER ~/.ssh/config

В противном случае вы можете получить ошибку Неверный владелец или права доступа к ~/.ssh/config.

45
27.01.2020, 19:50

Это не поддерживается, если вы используете Centos 7, потому что он не поддерживает флаг --userдля systemctl. См. этот отчет об ошибке Centos, Поддержка пользователей Systemd нарушена при доставке

1
27.01.2020, 19:50

Теги

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