Setup ssh para uma sessão Linux para Solaris

0

Quando ssh para meu servidor remoto, uma máquina solaris executando o SunOS 5.9 com o shell C como shell de login padrão, tenho os seguintes problemas:

  • A variável TERM não está definida: eu preciso definir manualmente essa variável para xterm para poder editar arquivos, senão tenho uma mensagem não amigável:

I don't know what kind of terminal you are on - all I have is 'xterm-256color'.

  • o teclado não é bem reconhecido:
    • backspace limpa o buffer completo da linha de comando. Eu encontrei uma solução aqui
    • A guia
    • faz uma guia, não é preenchida automaticamente
    • del key coloca lixo no buffer do console (^ [[)
    • as teclas de seta colocam lixo no buffer do console (^ [) e inserem A, B, C, D em vez de mover o cursor dentro do vi.
    • provavelmente mais

Encontrei uma maneira de corrigir o backspace usando o comando stty (aqui: Backspace, Tab não funciona no terminal (usando ssh) ), mas eu preciso de um remapeamento completo do teclado ...

Como posso configurar minha sessão ssh para corrigir o problema do termo e o problema do teclado no momento do login?

PS: O 'usuário' remoto é uma conta 'compartilhada' usada por todos os desenvolvedores e onde está localizada nossa distribuição de back-end. Não quero tocar no script. * Rc para evitar efeitos colaterais indesejados

    
por Guillaume 24.11.2016 / 18:07

3 respostas

2

Como é uma conta compartilhada (não vai discutir o quão desavisado isso 'normalmente é') - e você está usando o csh, você precisará fazer duas coisas

  1. crie um arquivo de ambiente pessoal comparável ao arquivo .login (.login é para csh como .profile é para bash, sh, etc.
  2. após o login, insira source 'file_just_created'

No arquivo criado, você pode fazer algo simples para retroceder - o que quer que você já esteja fazendo, por exemplo,

stty erase ^H

também, para sua configuração TERM - basta adicionar o arquivo!

setenv TERM xterm

ou qualquer valor que você precise / trabalhe para suas sessões de terminal

Resumo - crie mySetupFile com um ou mais comandos stty, mais setenv TERM myFavTermName e após o login no prompt source mySetupFile

EXTRA: Você também pode procurar o arquivo terminfo para o xterm, por exemplo /usr/share/lib/terminfo/x/xterm e se /usr/share/lib/terminfo/x/xterm-256color não existir, se permitido veja se

ln /usr/share/lib/terminfo/x/xterm /usr/share/lib/terminfo/x/xterm-256color

corrige seus problemas de edição.

Se isso funcionar, há outras coisas que também podem ser feitas (para criar e definir um novo terminfo use o comando tic aka compilador terminfo iirc. Pode fazer muita gente feliz.

    
por 24.11.2016 / 18:48
1

Em seu diretório home para seu usuário, você deve ter alguns arquivos de script de login ocultos. Abra uma sessão SSH como seu usuário, certifique-se de pousar em casa executando o comando pwd. Se não o cd $ HOME para chegar lá.

Em lá, liste o conteúdo com ls -la para mostrar arquivos ocultos. Você deve ter um arquivo .login, .cssh, .bashrc, .ksh ou semelhante que é executado quando você efetua o login. Você pode definir comandos personalizados aqui ou exportar a variável de ambiente.

A outra opção para definir variáveis de ambiente a serem passadas com conexões ssh é editar seu arquivo / etc / ssh / sshd_config no servidor para aceitar novas variáveis de ambiente, colocando AcceptEnv MYVAR. Você também teria que configurar o programa SSH do seu cliente para enviar essa variável para o lado do servidor ssh para recebê-los, configurando-os definindo SendEnv MYVAR.

    
por 24.11.2016 / 18:19
1

O csh no Solaris é o csh original do Bill Joy, que usa Escape, não Tab, para preenchimento automático (e isso só é ativo se você forset filec primeiro) e não possui edição de linha de comando, com ou sem teclas. Se você quiser esses recursos, você precisa usar o tcsh.

    
por 26.11.2016 / 18:55