Изменение командной оболочки на уровне пользователя для доступа к удаленному компьютеру с помощью 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. Есть что-нибудь еще, что я мог бы попробовать здесь?

0 ответов

Другие вопросы по тегам