Выбор оболочки, которую использует SSH?

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

Именование NIC на OpenSolaris является устройством, конкретным по умолчанию, таким образом, это мог бы быть e1000g0 на одной машине (использующий общий процессор Intel) или bge0 (использующий общую микросхему Broadcomm). В то время как ifconfig-a, конечно, покажет все настроенные интерфейсы, Вы доберетесь намного больше из dladm, который может сказать Вам обо всех настроенных и ненастроенных интерфейсах.

Команда dladm - то, что можно использовать, чтобы опросить платы NIC и изменить сетевые свойства. Это позволяет "универсальные покупки" агрегирования каналов, установки свойства устройства, виртуального создания NIC, ограничения уровня, переименования, и т.д. Можно использовать:

root@opensolaris: выставочная физика dladm

МЕДИА ССЫЛКИ ЗАЯВЛЯЮТ УСТРОЙСТВО ДУПЛЕКСА СКОРОСТИ

e1000g0 Ethernet 100 полных e1000g0

e1000g1 Ethernet неизвестные 0 половин e1000g1

e1000g2 Ethernet неизвестные 0 половин e1000g2

e1000g3 Ethernet неизвестные 0 половин e1000g3

перечислять все Ваши интерфейсы. Можно также переименовать использование названия ссылки:

$oldname$newname переименовывать-ссылки dladm

как

root@opensolaris: переименовывать-ссылка e1000g1 dmz dladm

root@opensolaris: выставочная физика dladm

МЕДИА ССЫЛКИ ЗАЯВЛЯЮТ УСТРОЙСТВО ДУПЛЕКСА СКОРОСТИ

e1000g0 Ethernet 100 полных e1000g0

Ethernet dmz неизвестные 0 половин e1000g1

e1000g2 Ethernet неизвестные 0 половин e1000g2

e1000g3 Ethernet неизвестные 0 половин e1000g3

Существует также намного больше, можно сделать, проверить сообщение в блоге Ben Rockwood на тему.

31
задан 27 January 2010 в 08:34
7 ответов

Принятие Вас работает на Linux, можно использовать chsh команда.

chsh -s /bin/ksh foo
chsh -s /bin/bash username
34
ответ дан 28 November 2019 в 19:57
  • 1
    Обратите внимание на то, что путь к двоичному файлу должен быть в /etc/shells, чтобы оболочка можно выбрать. –  Kimvais 27 January 2010 в 08:40

man chsh оболочка изменений, не всегда работает

С другой стороны, можно придерживаться exec /bin/zsh в Вашем входе в систему удара script.this заменит экземпляр удара Вашей оболочкой.

Или можно сделать ssh host "zsh -l"

10
ответ дан 28 November 2019 в 19:57

Редактировать / и т.д. / пароль (если Вы имеете права или спрашиваете Вашего системного администратора) изменить Вашу оболочку по умолчанию.

8
ответ дан 28 November 2019 в 19:57

Если вы не можете изменить оболочку по умолчанию, ssh -t user@host 'zsh -l' работает.

Флаг -t заставляет псевдо-тюбинговое распределение, а флаг -l порождает оболочку для входа в систему -l.

.
6
ответ дан 28 November 2019 в 19:57

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

Поскольку это общая учетная запись, я могу использовать zsh только для себя с помощью этого метода .

Добавьте это в свой ~ / .ssh / config файл на локальном компьютере.

Host yourServer
    HostName <IP, FQDN or DNS resolvable name>
    IdentityFile ~/.ssh/<your keyfile>
    RemoteCommand zsh -l
    RequestTTY force
    User <yourUsername>

Там может быть хакерский способ выполнить то, что вы ищете, как показано ниже.

ПРЕДУПРЕЖДЕНИЕ Это не дает никаких гарантий и не выглядит «разумным», однако мне удалось поместить свой локальный файл на сервер и передать его в оболочку входа с помощью этого.

Host someHost
    HostName someIP
    IdentityFile ~/.ssh/somekey.pem
    RemoteCommand zsh -l -c 'sleep 1; source /tmp/somefile; zsh'
    PermitLocalCommand yes
    LocalCommand bash -c 'sftp %r@%h <<< "put /tmp/somefile /tmp/somefile"'
    RequestTTY force
    User someUser

Как это работает?

  • RemoteCommand определяет, что нужно запускать на удаленной стороне.
  • LocalCommand определяет, что нужно запускать локально, что используется для копирования вашего локального файла на удаленный сервер для его получения. Вот и загвоздка, это происходит только после «успешного» подключения к удаленному хосту.

Значение:

  1. Ваше соединение с удаленным компьютером должно быть открытым и активным.
  2. Ваша удаленная оболочка еще не имеет файла, поэтому она должна подождать, пока файл появится, следовательно sleep
  3. Ваш local использует sftp , чтобы поместить ваш файл на удаленный сервер, удаленный сервер выходит из спящего режима и передает ваши скрипты.

Это супер хакерское занятие, я хотел бы знать, есть ли там тоже лучший способ.

Обновление: Его можно использовать вместо «длительного» времени ожидания:
RemoteCommand zsh -l -c 'while [[! -f / tmp / somefile]]; спать 0,05; сделанный; источник / tmp / somefile; zsh '

4
ответ дан 28 November 2019 в 19:57

Что касается исходного вопроса: изменить оболочку, открытую сеансом SSH, я не думаю, что она настраивается. Вы можете изменить оболочку, используемую пользователем в системе ( chsh, или отредактировать /etc/passwd), или даже изменить оболочку по умолчанию машины, но не оболочку SSH (я думаю, что SSH просто открывает обычную сессию с параметрами пользователя, включая конфигурацию оболочки).

1
ответ дан 29 January 2021 в 13:19

Если вы используете Windows:

  • для использования PowerShell 5, используйтеssh -t <username@servername> "powershell"
  • для использования PowerShell Core, используйтеssh -t <username@servername> "pwsh"
  • для использованияbash(Git Bash или WSL), используйтеssh -t <username@servername> "bash"
1
ответ дан 29 October 2021 в 05:26

Теги

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