Вопрос

Брандмауэр, за которым я стою, запускает Microsoft ISA server в режиме только NTLM.У кого-нибудь есть успех в установке / обновлении своих Ruby gems с помощью Ruby SSPI gem или другого метода?

...или я просто ленюсь?

Примечание:rubysspi-1.2.4 не работает.

Это также работает для "igem", части проекта IronRuby

Это было полезно?

Решение

Я не смог заставить свой работать с помощью переключателя командной строки, но я смог сделать это, просто установив свой HTTP_PROXY переменная среды.(Обратите внимание, что этот случай кажется важным).У меня есть пакетный файл, в котором есть такая строка:

SET HTTP_PROXY=http://%USER%:%PASSWORD%@%SERVER%:%PORT%

Очевидно, что я установил четыре переменные, на которые ссылаются ссылки, прежде чем перейти к этой строке.В качестве примера, если мое имя пользователя "wolfbyte", мой пароль "secret", а мой прокси называется "pigsy" и работает на порту 8080:

SET HTTP_PROXY=http://wolfbyte:secret@pigsy:8080

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

Другие советы

Для ОС Windows я использовал Fiddler, чтобы обойти эту проблему.

  1. Установите / запустите Fiddler из www.fiddler2.com
  2. Запустить драгоценный камень:

    $ gem install --http-proxy http://localhost:8888 $gem_name
    

Это полностью сработало:

gem install --http-proxy http://COMPANY.PROXY.ADDRESS $gem_name

Я использую cntlm (http://cntlm.sourceforge.net/) на работе.Конфигурация очень похожа на ntlmaps.

Отлично работает, а также позволяет мне подключить мой Ubuntu box к ISA proxy.

Проверьте http://cntlm.wiki.sourceforge.net/ для получения дополнительной информации

Я попробовал некоторые из этих решений, и ни одно из них не сработало.Наконец-то я нашел решение, которое работает для меня:

gem install -p http://proxy_ip:proxy_port rails

используя -p параметр для передачи прокси-сервера.Я использую Gem версии 1.9.1.

Это прекрасно решило мою проблему:

gem install -p http://proxy_ip:proxy_port compass

Возможно, вам потребуется добавить к нему свое имя пользователя и пароль:

gem install -p http://[username]:[password]@proxy_ip:proxy_port compass

Создайте файл .gemrc (либо в /etc/gemrc, либо ~/.gemrc, либо, например, с помощью chef gem в /opt/chef/embedded/etc/gemrc), содержащий:

http_proxy: http://proxy:3128

Тогда вы сможете gem install как обычно.

Если у вас возникли проблемы с аутентификацией через ваш прокси-сервер, обязательно задайте переменные среды в точности в приведенном ниже формате:

set HTTP_PROXY=some.proxy.com
set HTTP_PROXY_USER=user
set HTTP_PROXY_PASS=password

Тот Самый user:password@ синтаксис, похоже, не работает, и есть также некоторые переменные среды с неправильными именами, плавающие в Stack Overflow и различных сообщениях на форуме.

Также имейте в виду, что для начала загрузки ваших драгоценных камней может потребоваться некоторое время.Сначала я подумал, что это не работает, но, проявив немного терпения, они начали загрузку, как и ожидалось.

Я перепробовал все вышеперечисленные решения, однако ни одно из них не сработало.Если вы используете linux / macOS, я настоятельно рекомендую использовать tsocks через ssh-туннель.Что вам нужно для того, чтобы эта настройка заработала, так это компьютер, на котором вы можете войти в систему через ssh, и в дополнение к этому установленная программа под названием tsocks.

Идея здесь состоит в том, чтобы создать динамический туннель через SSH (прокси-сервер socks5).Затем мы настраиваем tsocks на использование этого туннеля и запуск наших приложений, в данном случае:

tsocks gem install ...

или для учета rails 3.0:

tsocks bundle install

Более подробное руководство можно найти в разделе:

http://blog.byscripts.info/2011/04/bypass-a-proxy-with-ssh-tunnel-and-tsocks-under-ubuntu/

Несмотря на то, что процедура написана для Ubuntu, она должна быть применима ко всем машинам под управлением Unix.Альтернативой tsocks для Windows является FreeCap (http://www.freecap.ru/eng/).Жизнеспособный SSH-клиент в Windows называется putty.

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

На данный момент в Интернете существует три решения:rubysspi apserver cntlm

rubysspi работает только с компьютера с Windows, AFAIK, поскольку он полагается на библиотеку Win32Api.Так что, если вы используете Windows Box, пытаясь запустить через прокси-сервер, это решение для вас.Если вы используете дистрибутив Linux, вам не повезло.

apserver, похоже, мертвый проект.Ссылка, указанная в сообщениях, которые я видел, ведет на страницу 404 на sourceforge.Я ищу "apserver" в sourceforge, который ничего не возвращает.

Ссылка sourceforge для cntlm, которую я видел, перенаправляет на http://cntlm.awk.cz/, но это время истекло.Поиск в sourceforge выдает эту ссылку, которая действительно работает: http://sourceforge.net/projects/cntlm/

После загрузки и настройки cntlm мне удалось установить gem через прокси, так что это, по-видимому, лучшее решение для дистрибутивов Linux.

Обходной путь заключается в установке http://apserver.sourceforge.net на вашем локальном компьютере настройте его и запустите gems через этот прокси.

  • Установить:Просто скачайте apserver 097 (а не экспериментальный 098!) и распакуйте.
  • Настройка:Отредактируйте файл server.cfg и поместите значения для вашего прокси-сервера MS в PARENT_PROXY и PARENT_PROXY_PORT.Введите значения для ДОМЕНА и ПОЛЬЗОВАТЕЛЯ.Оставьте ПАРОЛЬ пустым (ничего после двоеточия) – вам будет предложено ввести его при запуске.
  • Запустить apserver: cd aps097; python main.py
  • Запускайте Драгоценные камни: gem install—http-proxy http://localhost:5865/ library

Я работаю за прокси-сервером и только что установил SASS, загрузив непосредственно с http://rubygems.org.

Затем я побежал sudo gem install [path/to/downloaded/gem/file].Я не могу сказать, что это сработает для всех драгоценных камней, но некоторым людям это может помочь.

Это сработало у меня в окне Windows:

set HTTP_PROXY=http://server:port
set HTTP_PROXY_USER=username
set HTTP_PROXY_PASS=userparssword
set HTTPS_PROXY=http://server:port
set HTTPS_PROXY_USER=username
set HTTPS_PROXY_PASS=userpassword

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

Хитрость, в моем случае, заключалась в следующем HTTPS_PROXY Наборы.Без них я всегда получал ошибку аутентификации прокси 407.

Если вы используете систему * nix, используйте это:

export http_proxy=http://${proxy.host}:${port}
export https_proxy=http://${proxy.host}:${port}

а потом попробуй:

gem install ${gem_name}

rubysspi-1.3.1 работал у меня в Windows 7, используя инструкции с этой страницы:

http://www.stuartellis.eu/articles/installing-ruby/

Если вы хотите использовать прокси SOCKS5, вы можете попробовать rubygems-socksproxy https://github.com/gussan/rubygems-socksproxy.

У меня это работает на OSX 10.9.3.

Если вы находитесь за прокси-сервером, вы можете перейти к Загрузки Ruby, нажмите на кнопку Загрузить, которая загрузит указанное обновление (или драгоценный камень ) в нужное место.

Затем с помощью командной строки Ruby перейдите к загруженному местоположению, используя : pushd [directory]

например : pushd D:\Setups

затем выполните следующую команду: gem install [update name] --local

например: gem install rubygems-update --local.

Протестировано в Windows 7 с обновлением Ruby версии 2.4.1.

Для проверки используйте следующую команду : ruby -v

Вместо редактирования пакетных файлов (что вам, возможно, придется делать для других Ruby gems, напримерBundler), вероятно, лучше сделать это один раз, и сделать это правильно.

В Windows, за моим корпоративным прокси-сервером, все, что мне нужно было сделать, это добавить HTTP_PROXY переменная окружения в моей системе.

  1. Пуск -> щелкните правой кнопкой мыши Компьютер -> Свойства
  2. Выберите "Дополнительные системные настройки".
  3. Нажмите Дополнительно -> Переменные среды
  4. Создайте новую системную переменную с именем "HTTP_PROXY", и установите Значение для вашего прокси-сервера
  5. Перезагрузитесь или выйдите из системы и снова войдите в систему

В зависимости от ваших требований к аутентификации, HTTP_PROXY значение может быть таким же простым, как:

http://proxy-server-name

Или более сложный, как указывали другие

http://username:password@proxy-server-name:port-number
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top