Я - вполне уверенный SSH, не отправляет имя хоста на сервер (это просто использует его локально для поиска IP-адреса и к ключам от английского замка и т.д.). По крайней мере, не способом, который может использоваться в сценарии оболочки.
Посмотрите вывод env
- единственное имя хоста является каноническим, независимо от того, какое имя использовалось в команде ssh.
Некоторые клиенты SSH и некоторые серверы SSH позволяют клиенту указывать значение для одной или нескольких переменных среды, очевидно Вы могли использовать это для сообщения сервера который каталог переключиться на. Например, см. конфигурацию Шпаклевки, соединение, данные или опцию OpenSSH SendEnv.
Иначе у Вас есть один идентификатор пользователя для каждого веб-сайта с различным доменным именем, или необходимо предложить пользователю меню.
Ваш вопрос неясен: Вы достигаете того же хоста через несколько псевдонимов? Вы достигаете различных хостов та доля a .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