Как обновить рубиновых камней из под прокси (Иса-проверка подлинности NTLM)


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

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

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

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

18 213

18 ответов:

Я не смог заставить меня работать с коммутатором командной строки, но я смог сделать это, просто установив мой 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. установить / запустить скрипач из www.fiddler2.com
  2. Run gem:

    $ 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.

Проверьте 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 in /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

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

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

Я пробовал все вышеперечисленные решения, однако ни один из них не работал. Если вы находитесь на 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 называется шпаклевка.

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

три решения вокруг интернета на данный момент являются: rubysspi apserver cntlm

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

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

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

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

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

  • установка: просто скачайте apserver 097 (а не экспериментальный 098!) и распаковать вещи.
  • настройки: редактирование сервера.cfg-файл и поместите значения для вашего прокси-сервера MS в PARENT_PROXY и PARENT_PROXY_PORT. Введите значения для домена и пользователя. Оставьте пароль пустым (ничего после двоеточия) – вам будет предложено при запуске оно.
  • выполнить apserver: cd aps097; python main.py
  • Run Gems: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.

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

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

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

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

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

gem install ${gem_name}

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

Это работает для меня на OSX 10.9.3.

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

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

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

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

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

протестировано на Windows 7 с Ruby update версии 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