Как я могу установить переменные среды, когда я ssh вхожу в свое поле Unix путем передачи пользовательских аргументов?

Apache 2.2 представляет более гибкую подлинную схему, которая допускает несколько поставщиков. Связанный пример содержит строку:

Файл AuthBasicProvider ldap

Путем именования больше чем одного источника (файл и ldap), Вы определили несколько источников аутентификационной информации и их порядок. Легкий!

5
задан 15 August 2011 в 22:15
4 ответа

На компьютере с CentOS создайте в домашнем каталоге файл с именем .bashrc и установите в нем переменные среды. Например, содержимое файла может быть:

export VARIABLE=foo

Вот некоторые обсуждения этого: http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_03_01.html


Вы также можете используйте параметры SendEnv и AcceptEnv . Это позволит передавать переменные среды на клиенте на сервер.

Вам также потребуется изменить файл сервера sshd_config , чтобы указать, какие переменные среды принимаются сервером. Я не уверен, что вам нужно сделать с PuTTY, чтобы запустить параметр SendEnv , но это должно помочь вам начать работу.

6
ответ дан 3 December 2019 в 01:02

Вы можете изменить PermitUserEnvironment в sshd.conf, чтобы разрешить обработку параметров ~ / .ssh / environment или "environment =" для ключей в ~ / .ssh / authorized_keys.

Формат из этих двух файлов отличается. ~ / .ssh / environment - это строки VARIABLBE = VALUE, где в ~ / .ssh / authorized_keys параметр среды - environment = "VARAIBLE = VALUE"

2
ответ дан 3 December 2019 в 01:02

Вы можете ввести переменные среды в конфигурацию PuTTY в разделе Соединение -> Данные .

enter image description here

Но это работает только при определенных условиях. Цитата из документация :

Протокол Telnet предоставляет возможность клиенту передавать переменные среды на сервер. [...]

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

Эти данные конфигурации не используются в протоколах SSH-1, rlogin или raw.

Кроме того, это должно быть разрешено на стороне сервера. Для сервера OpenSSH конфигурационная директива называется AcceptEnv . На сервере Ubuntu по умолчанию это выглядит так:

AcceptEnv LANG LC_*

Это позволяет вам определить переменную LANG и все переменные, начинающиеся с LC_ в PuTTY, так что вы всегда можете получить результат в предпочитаемом вами языковом стандарте.

Если вы хотите установить дополнительные переменные, вы должны добавить их в список на всех серверах, к которым вы хотите подключиться. На старых (только SSH1) хостах это вообще не будет работать.

5
ответ дан 3 December 2019 в 01:02

Для тех, кто не может изменять конфигурацию sshd по разным причинам и / или имеет +2000 серверов (и не имеет доступа к инструментам массовой настройки или не может / не может » не хочу изменять настройки для других пользователей), вот решение, которое я придумал:

enter image description here

В PuTTY загрузите желаемый сеанс, перейдите в «Соединение»> «SSH». В разделе «Данные для отправки на сервер» в поле «Удаленная команда» используйте:

env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...] bash

Пример:

env -u PS1 PS1="[\u@\h]\\$ " bash

Сначала я отключил переменную, потому что иначе она не сработала.

0
ответ дан 3 December 2019 в 01:02

Теги

Похожие вопросы