Я хочу создать следующий скрипт в .profile, чтобы каждый сеанс SSH проходил на своем месте:

  1. Проверьте указанный хост (user @ host).
  2. Если host = host1 - cd /var /www /site1

и т.п.

Помогите! :)

2 ответа2

0

Я почти уверен, что SSH не отправляет имя хоста на сервер (он просто использует его локально для поиска IP-адреса, проверки ключей и т.д.). По крайней мере, не таким образом, который может быть использован в сценарии оболочки.

Смотрите вывод env - единственное имя хоста является каноническим, независимо от того, какое имя было использовано в команде ssh.

Некоторые клиенты SSH и некоторые серверы SSH позволяют клиенту указывать значение для одной или нескольких переменных среды, возможно, вы можете использовать это, чтобы сообщить серверу, на какой каталог переключаться. Например, см. Конфигурация замазки , соединение, данные или опция OpenSSH SendEnv .

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

0

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

Если вы хотите иметь разные эффекты на разных удаленных хостах, просто проверьте имя удаленного хоста:

case "$(hostname)" in
  host1) cd /var/www/site1;;
esac

Если вам нужны разные эффекты на одном и том же хосте, вы можете использовать директивы SendEnv в ~/.ssh/config для отправки переменных среды (при условии, что вы используете клиент OpenSSH ). Их необходимо включить с помощью директивы AcceptEnv на стороне сервера, что часто не имеет место. Однако переменные LC_* обычно разрешены, так что вы можете передавать информацию, используя их. На стороне клиента запустите LC_VIRTUAL_HOST=site1 ssh common-host.provider.com . В вашем .profile на сервере напишите

case "$LC_VIRTUAL_HOST" in
  host1) cd /var/www/site1;;
esac

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .