Как обновить рубиновых камней из под прокси (Иса-проверка подлинности NTLM)
брандмауэр, за которым я стою, работает под управлением Microsoft ISA server в режиме NTLM. Хэш у кого-нибудь есть успех в получении своих Ruby gems для установки/обновления через Ruby SSPI gem или другой метод?
... или я просто ленюсь?
Примечание: rubysspi-1.2.4 не работает.
Это также работает для "igem", часть проекта IronRuby
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, чтобы обойти эту проблему.
- установить / запустить скрипач из www.fiddler2.com
Run gem:
$ gem install --http-proxy http://localhost:8888 $gem_name
Я использую cntlm (http://cntlm.sourceforge.net/) на работе. Конфигурация очень похожа на ntlmaps.
- gem install --http-proxy http://localhost:3128 _name_of_gem_
отлично работает, а также позволяет мне подключить Мой 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.
Если вы находитесь в системе *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
переменная окружения для моей системы.
- Пуск -> щелкните правой кнопкой мыши Компьютер -> Свойства
- Выберите "Дополнительные Параметры Системы"
- Нажмите Дополнительно - > Переменные Среды
- создать новая системная переменная с именем "
HTTP_PROXY
", и установите значение для вашего прокси-сервера- перезагрузить или выйти из системы и снова
в зависимости от ваших требований к аутентификации,
HTTP_PROXY
значение может быть таким же простым, как:http://proxy-server-name
или более сложные, как указывали другие
http://username:password@proxy-server-name:port-number