Проблема установки открытого ключа в среде Windows для scp - PullRequest
0 голосов
/ 27 января 2012

Я пытаюсь настроить задание Hudson для копирования результата задания Hudson (состоит из нескольких файлов) на сервер Hudson для консолидации результатов от нескольких ведомых устройств. Мое намерение состоит в том, чтобы использовать scp. К сожалению, у меня возникают трудности при настройке открытого / закрытого ключа SSH в среде Windows (и подчиненный, и сервер Hudson являются средой Windows). Я не могу перейти на Linux, потому что я не являюсь владельцем этих машин.

Я использую следующие процедуры для настройки открытых / закрытых ключей SSH.

  1. Настройте ssh-сервер на машине Hudson, выполнив следующие действия:

    • cd C: \ Program Files \ OpenSSH \ bin
    • mkgroup -l >> .. \ etc \ group
    • mkpasswd -l >> .. \ etc \ passwd
    • mkpasswd -d -u test >> .. \ etc \ passwd (Примечание: test - это идентификатор пользователя, используемый для SSH)
    • Загрузите cygintl-2.dll & cygwin1.dll из http://samanthahalfon.net/resources/cygwin_includes.zip. Скопируйте эти dll-файлы в C: \ Program Files \ OpenSSH \ bin. Вам нужно будет заменить cygwin1.dll.
    • cd C: \ Program Files \ OpenSSH \ etc
    • .. \ bin \ chown test *
    • .. \ bin \ chmod 600 *
    • Отредактируйте C: \ Program Files \ OpenSSH \ etc \ sshd_config со следующей конфигурацией:
      • Порт 22 * ​​1030 *
      • Протокол 2
      • StrictModes no
      • PubKeyAuthentication да
      • AuthorizedKeysFile /c/home/test/.ssh/authorized_keys
      • PasswordAuthentication no
      • UserPrivilegeSeparation no
    • Чтобы запустить его как службу Windows, выполнив: net start opensshd
  2. Настройте открытый ключ ssh на компьютере Hudson, чтобы сценарий автоматизации тестирования не запрашивал пароль:

    • На подчиненном компьютере с помощью команды "ssh-keygen -t dsa" создать пары ключей. По умолчанию пары ключей (файлы: id_dsa & id_dsa.pub) будут созданы в C: \ Documents and Settings \ test.ssh \
    • Использование команды «scp id_dsa.pub test@XX.XX.XX.XX: .ssh / id_rsa_upload.pub» для загрузки открытого ключа на сервер Hudson. то есть scp id_dsa.pub test@XX.XX.XX.XX: .ssh / id_rsa_upload.pub
    • На сервере Hudson перейдите в каталог C: \ Program Files \ OpenSSH.ssh, затем выполните «type id_rsa_upload.pub >> authorized_keys»
    • Выйдите и перезапустите opensshd на сервере Hudson, выполнив «net stop opensshd» и «net start opensshd», теперь вы можете войти на сервер ssh без пароля.
    • На сервере Hudson выполните следующее:
      • cd C: \ Program Files \ OpenSSH \
      • Чоун -R тест.
      • chmod -R 700 .ssh
      • cd .ssh
      • chmod 600 authorized_keys
    • На подчиненном компьютере отредактируйте C: \ Program Files \ OpenSSH \ etc \ ssh_config. Укажите «IdentityFile / c / home / test / id_dsa».
  3. Проверьте с вашего подчиненного компьютера, какой закрытый ключ SSH был выполнен. В подчиненной машине подключитесь, выполнив:

    ssh test@XX.XX.XX.XX (IP - это IP-адрес сервера Hudson)

    К сожалению, он все еще запрашивает парольную фразу.

В качестве обходного пути я рассмотрел следующие возможности, но результаты не являются положительными:

а. общий диск на сервере Hudson, сопоставленный с диском на ведомой машине - Hudson не разрешает «копировать result.html Y:»

б. sftp - также требуется открытый ключ

с. Нашел предлагаемое решение для устранения проблемы с общим диском с помощью «copy result.html \ XX.XX.XX.XX \ test \», но я обнаружил ошибку «Отказано в доступе». не знаю, как указать идентификатор пользователя и пароль с помощью этого метода. См. Сервер непрерывной интеграции Hudson: как просмотреть сопоставленные каталоги Windows, которые видны Ant?

d: Я также искал плагин Хадсона для любого потенциального решения, но не мог найти ничего подходящего или понятия не имею об использовании плагина.

Было бы замечательно, если бы кто-то заметил мою ошибку в настройке открытого ключа или предложил мне альтернативное решение для копирования нескольких файлов на сервер Hudson. Спасибо

1 Ответ

0 голосов
/ 30 января 2012

Сначала нужно определить, что не так - сервер или клиент.

  1. Чтобы проверить настройку сервера, используйте тот же ключ на любом клиенте Linux / Mac (который гораздо более прозрачен) и попробуйтеподключиться к серверу.

  2. Чтобы убедиться, что ssh на ведомой машине загружает ваш идентификационный ключ dsa, попробуйте следующее:

    ssh -ic: / home / test / id_dsa -v test @ XX.XX.XX.XX

, где -i указывает ssh, где взять ключ, а -v включает подробный режим, который может помочь вам определить проблему.

...