Como executar um comando remoto no PuTTY após o login e manter o shell em execução?

32

O que estou tentando fazer: inicie uma sessão do PuTTY a partir da linha de comando, faça o login na máquina remota e cd no diretório fornecido.

putty.exe -agent -ssh some.host

Isso abrirá uma sessão & faça o login com meu nome de login padrão & chave privada.

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

Isso abrirá uma sessão, fará login, executará um comando ( cd neste caso) e sairá .

Como abro uma sessão, faço o login, cd e mantenho a sessão aberta?

Antecedentes: eu uso o emacs sob o Windows e frequentemente edito arquivos em máquinas Unix remotas usando tramp & plink. Eu quero fazer uma tecla de atalho que abre uma sessão PuTTY para essa máquina remota e chdirs para o diretório desse arquivo. Não é grande coisa no lado do emacs, mas estou preso ao PuTTY.

    
por Artyom V. Kireev 25.04.2013 / 17:06

2 respostas

30

O que o -m faz é que ele faz com que o PuTTY instrua o servidor SSH a iniciar o (s) comando (s) INSTEAD de um shell. Então, quando o seu comando terminar, o mesmo acontece com a sessão.

Se você deseja executar o shell após o comando cd , é necessário adicioná-lo explicitamente ao seu cmd.txt , como:

cd /my/path ; /bin/bash

Além disso, o -m implica no modo "nopty" / não interativo. Para usar um shell interativo, é necessário substituir isso usando o -t mudar .

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

Como alternativa, use o KiTTY com sua opção -cmd , que faz o que você quer (e não precisa de um arquivo temporário) .

    
por 25.04.2013 / 18:00
-1

A sessão de tramp que você está começando no emacs e a sessão do shell que você executa via putty são processos completamente separados.

Provavelmente, é melhor você verificar as opções de configuração do tramp para ver se existe uma maneira de definir um diretório padrão por host dentro de sua configuração do emacs. Talvez comece com a opção de configuração tramp-remote-path como documentado aqui .

Se você precisar usar o putty para estabelecer a conexão, você provavelmente desejará configurar um túnel ssh e conectar o emacs / tramp através dele.

    
por 25.04.2013 / 17:11

Tags