Изменение командной оболочки на уровне пользователя для доступа к удаленному компьютеру с помощью paramiko
Я использую некоторый код, соединяющийся с удаленной машиной с использованием библиотеки paramiko. Соединение установлено через туннелирование ssh
соединение связано с одним из портов localhost. Оболочка по умолчанию на удаленной машине: tcsh
, но мой код требует его запуска bash
, Я проверил sshing несколько простых команд, и он отлично работает.
$ ssh localhost -p 2222 'echo $0'
tcsh
Чтобы изменить оболочку входа в систему я добавил в мой .tcshrc
файл после двух строк:
setenv SHELL /bin/bash
exec /bin/bash --login
Следующая вещь работает:
$ ssh localhost -p 2222
[user@remote ~]$ echo $0
/bin/bash
Но не следующее:
$ ssh localhost -p 2222 'echo $0'
который не дает ответа. То же самое для соединений с paramiko, установленных кодом, который я хочу использовать.
На данный момент я ограничен только решениями на уровне пользователя и предпочел бы не играть с самим кодом использования paramiko. Есть что-нибудь еще, что я мог бы попробовать здесь?