Не удалось создать каталог/var/teamsserver

Я установил сервер os x (Mavericks) на свой Mac и хотел бы добавить бота. По некоторым причинам мое удаленное репо расположено на другом внешнем сервере, и у меня есть доступ к нему по имени пользователя и паролю на указанном порту. Я добавил удаленное репо на сервер os x следующим образом:

SSH://1.2.3.4: ПОРТ/путь/к/repo.git

... заполнено имя пользователя и пароль.

Затем я добавил бота в Xcode, но когда я ударил интеграцию, он терпит неудачу с журналами:

Клонирование в 'ssh_myusername_1_2_3_4_PORT_path_to_repo_git'...

OpenSSH_6.2p2, OSSLShim 0.9.8r 8 декабря 2011 г. debug1: Чтение

данные конфигурации /etc/ssh _config debug1:/etc/ssh_config строка 20:

Применение параметров для * debug1: Подключение к порту 1.2.3.4 [1.2.3.4] port PORT.

debug1: установлено соединение.

Не удалось создать каталог '/var/teamsserver/.ssh'.

debug1: файл идентификатора /var/teamsserver/.ssh/id_rsa тип -1

debug1: файл идентификации /var/teamsserver/.ssh/id_rsa-cert type -1

debug1: файл идентификатора /var/teamsserver/.ssh/id_dsa type -1

debug1: файл идентификации /var/teamsserver/.ssh/id_dsa-cert type -1

debug1: включение режима совместимости для протокола 2.0

debug1: строка локальной версии SSH-2.0-OpenSSH_6.2

debug1: Удаленный протокол версии 2.0, версия удаленного программного обеспечения OpenSSH_6.0p1 Debian-3ubuntu1

debug1: match: OpenSSH_6.0p1 Debian-3ubuntu1 pat OpenSSH *

debug1: отправлен SSH2_MSG_KEXINIT

debug1: получен SSH2_MSG_KEXINIT

debug1: kex: server- > client aes128-ctr hmac-md5 none

debug1: kex: client- > server aes128-ctr hmac-md5 none

debug1: отправлено сообщение SSH2_MSG_KEX_DH_GEX_REQUEST (1024 < 1024 < 8192)

debug1: ожидается SSH2_MSG_KEX_DH_GEX_GROUP

debug1: отправлено сообщение SSH2_MSG_KEX_DH_GEX_INIT

debug1: ожидается SSH2_MSG_KEX_DH_GEX_REPLY

debug1: ключ хоста сервера: RSA b6: b8: 0e: e4: 25: 63: 6d: 64: a3: d6: 6d: 7f: 46: 85: 72: 0d

debug1: проверка без идентификатора порта. Отсутствует ключ хоста RSA для [1.2.3.4]: PORT и вы запросили строгую проверку. Ошибка проверки ключа хоста.

fatal: Не удалось прочитать из удаленного репозитория.

Пожалуйста, убедитесь, что у вас есть правильные права доступа и репозиторий существует.

Путь файла SSH Known Hosts находится по адресу /Library/ Сервер/Xcode/Config/ssh_known_hosts

Проверка хоста SSH (вы можете отключить это, отредактировав

SSHStrictHostKeyПроверка ключа в /Library/Server/Xcode/Config/xcsbuildd.plist

Неверный HTTPS сертификаты отключены (вы можете включить это, отредактировав

TrustSelfSignedSSLCдает ключ в /Library/Server/Xcode/Config/xcsbuildd.plist

Я предполагаю, что есть проблема с разрешениями, но в моем /var есть несколько каталогов с разными разрешениями и, конечно, нет папки серверов команд...

Поэтому я не знаю, как настроить правильные разрешения (без изменения разрешений других подкаталогов /var...). Я могу попробовать вручную создать каталог "сервер команд", но не знаю, с какими правами...? У вас есть идеи?

EDIT: для целей тестирования я создал команду teamsserver с 777, но это не решает мою проблему. Журналы выглядят так же, как и предыдущие, но не связанные строки:

Не удалось создать каталог '/var/teamsserver/.ssh'.

Любые идеи?

Спасибо

Ответ 1

Хорошо, я потратил некоторое время, но у меня есть решение... На самом деле два решения. Стыдно признаться, но читать и понимать журналы достаточно для решения проблемы (опять же: P).

ПЕРВЫЙ ОТВЕТ:

Ключ хоста сервера был добавлен в .ssh/known_hosts ПЕРЕД установкой сервера os x. Сервер не использует этот путь для известных хостов. Как говорит журнал, сервер использует:

Путь файла SSH Known Hosts находится по адресу /Library/Server/Xcode/Config/ssh _known_hosts

и этот файл был пуст в моем случае. Поэтому для решения проблемы достаточно скопировать known_hosts в ssh_known_hosts:

sudo cp ~/.ssh/known_hosts /Library/Server/Xcode/Config/ssh_known_hosts

Это просто.

ВТОРОЙ ОТВЕТ:

Запись в журнал снова

Включена строгая проверка хоста SSH (вы можете отключить это путем редактирования ключ SSHStrictHostKeyChecking в /Library/Server/Xcode/Config/xcsbuildd.plist

Измените SSHStrictHostKeyПроверка на false.

Сделано еще раз.

Ответ 2

У меня возникла аналогичная проблема со сценариями построения схемы при попытке запустить команды git против репозитория github, защищенного парами ключей ssh.

Боты запускают сборки, используя системную учетную запись _teamsserver. Как вы обнаружили, эти учетные записи по умолчанию не имеют домашних каталогов. Чтобы настроить сборки для доступа и изменения их домашнего каталога, у меня был успех со следующим (ваш пробег может отличаться):

sudo mkdir /var/teamsserver
sudo chown -R _teamsserver:_teamsserver /var/teamsserver/
sudo chmod -R 770 /var/teamsserver/

НТН

Ответ 3

Если вы пробовали вышеуказанное и все еще получаете отказ в разрешении на доступ, вы, вероятно, не имеете права на этот файл/каталог.

  • С кем вы работаете? $id
  • $ls -al каталог, который сервер пытается прочитать id_rsa из (вероятно, похоже на этот путь: Library/Server/Xcode/Data/BotRuns/BotRun-a28db5fc-1932-47a0-a528-f52c75e421e2.b‌​undle/credentials/65885363-194e-454b-a3ce-56dcaaf5d3c9/id_rsa)
  • изменить право собственности на этот файл ^^ ($sudo chown {#id} {#path})

Ответ 4

Я сделал 3 вещи, чтобы позволить мне пройти мимо этого, хотя я не уверен, кто из них решил проблему:

  • Измените все репозитории git в моем проекте на использование версии HTTPS, а не SSH (git) URL-адреса
  • Отключено SSHStrictHostKeyПроверка в соответствии с инструкциями из журнала управления источником из бота.
  • Включить TrustSelfSignedSSLCertificates в соответствии с теми же инструкциями из журнала.

Также проверьте https://discussions.apple.com/thread/5586872, если это проблема для вас.

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