Не удалось создать каталог/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.bundle/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, если это проблема для вас.
Я отключу некоторые из этих элементов и испытаю, когда у меня будет больше времени.