33

То , что я пытаюсь сделать: начать сеанс PuTTY из командной строки, войдите на удаленную машину и cd - диск в соответствующую папку.

putty.exe -agent -ssh some.host

Это откроет сеанс и войдите в систему с моим именем пользователя по умолчанию и закрытым ключом.

echo cd /some/remote/path/ > c:/stuff/cmd.txt
putty.exe -agent -ssh some.host -m 'c:/stuff/cmd.txt'

Это откроет сеанс, войдет в систему, выполнит команду (в данном случае cd ) и завершит работу.

Как открыть сессию, войти в систему, cd и сохранить сессию открытой?

Справочная информация: я использую emacs под Windows и часто редактирую файлы на удаленных Unix-машинах, используя tramp & plink. Я хочу создать горячую клавишу, которая открывает сеанс PuTTY для этого удаленного компьютера и запускает chdirs в каталог этого файла. Ничего страшного на стороне emacs, но я застрял с PuTTY.

2 ответа2

31

Что делает -m , так это то, что PuTTY заставляет сервер SSH запускать эту команду (команды) INSTEAD оболочки. Итак, как только ваша команда завершится, сессия завершится.

Если вы хотите запустить оболочку после команды cd , вам нужно явно добавить ее в ваш cmd.txt , например:

cd /my/path ; /bin/bash

Также -m подразумевает "неактивный"/ неинтерактивный режим. Чтобы использовать интерактивную оболочку, вы должны переопределить ее, используя ключ -t.

putty.exe -ssh example.com -m "c:\path\cmd.txt" -t

В качестве альтернативы используйте KiTTY с -cmd , который делает то, что вы хотите (и не требует временного файла).

-1

Сеанс tramp, который вы запускаете в emacs, и сеанс оболочки, который вы запускаете через putty, являются совершенно отдельными процессами.

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

Если вам нужно использовать putty для установления соединения, вы, вероятно, захотите настроить ssh-туннель и через него подключиться через emacs/tramp.

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