Развертывание с CircleCI - SSH на сервер требует пароль, но у меня есть связанный ключ SSH - PullRequest
2 голосов
/ 05 апреля 2019

Я пытаюсь подключиться к серверу SSH как часть задания по развертыванию в CircleCI

ssh -oStrictHostKeyChecking=no $DEV_DROPLET_USER@$DEV_DROPLET_IP

У меня есть личный ключ SSH для пользователя на этом сервере, загруженный в CircleCI, нокаждый раз, когда я запускаю задание, я получаю этот вывод

Warning: Permanently added '$host' (ECDSA) to the list of known hosts. <$user>@<$host>'s password:

Как я могу остановить его, запрашивая пароль?

Я добавил для этого ключ SSHпользователь для SSH агента на сервере ( эти инструкции)

1 Ответ

6 голосов
/ 15 апреля 2019

Для ssh-соединения без пароля необходимо:

  • поместить закрытый ключ ssh в файл в каталоге $HOME/.ssh/ на клиентском компьютере, подключающемся к серверу (пример: $HOME/.ssh/MyServer)
  • скопировать открытый ssh-ключ в файл $HOME/.ssh/authorized_keys на сервере
  • иметь разрешение на запись в файл $HOME/.ssh/known_hosts на клиентском компьютере

sshdслужба обычно уже настроена для принятия аутентификации на основе ключей.

Теперь с клиентского компьютера вы можете установить без пароля соединение ssh -i $HOME/.ssh/MyServer $DEV_DROPLET_USER@$DEV_DROPLET_IP

Конечно, на клиентском компьютере ваш $ DEV_DROPLET_USER должен иметьсоответствующие разрешения для доступа к файлам, связанным с ssh.

Вам не нужно ничего делать с агентом ssh, на клиенте или на сервере.

...