Я пытаюсь настроить задание Hudson для копирования результата задания Hudson (состоит из нескольких файлов) на сервер Hudson для консолидации результатов от нескольких ведомых устройств. Мое намерение состоит в том, чтобы использовать scp. К сожалению, у меня возникают трудности при настройке открытого / закрытого ключа SSH в среде Windows (и подчиненный, и сервер Hudson являются средой Windows). Я не могу перейти на Linux, потому что я не являюсь владельцем этих машин.
Я использую следующие процедуры для настройки открытых / закрытых ключей SSH.
Настройте 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
Настройте открытый ключ 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».
Проверьте с вашего подчиненного компьютера, какой закрытый ключ 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. Спасибо