SSH Login “clear screen” antes do MOTD ser exibido

3

Estou tentando limpar o conteúdo da tela antes que o MOTD seja exibido, de modo que quando você estiver SSH no servidor, o cabeçalho MOTD esteja na parte superior da tela, e não os comandos anteriores executados na sua máquina local.

Eu tentei adicionar clear a .bashrc , mas também limpa o MOTD.

Exemplo: limpe tudo acima do "Bem-vindo ao Ubuntu ...."

Pergunta: Como remover todo o conteúdo antes que a mensagem MOTD seja exibida?

    
por Jordan Davis 19.01.2017 / 22:16

2 respostas

1

O MOTD é exibido pelo módulo de autenticação pam nas modernas distribuições linux, logo após o seu login. Nenhum script de usuário será executado antes disso.

Você pode simplesmente modificar o arquivo motd para limpar a tela via sequências de escape de terminal. < esc > [2J < esc > [; H limpará a tela e saltará para cima. Abra o seu arquivo motd com vim, pressione i (modo de inserção), pressione ctrl + v, pressione o botão esc. Você verá ^ [. Você acabou de digitar o caractere de escape ascii 27. Digite [2J e depois ctrl-v esc novamente e então [; H. Agora pressione esc (sem ctrl-v, isto é para escapar do modo de inserção no vi) e pressione shift + Z duas vezes.

Sua tela será apagada em todos os terminais compatíveis com vt100.

Sua outra opção é desativar o motd no pam. Procure o pam_motd.so no diretório /etc/pam.d: grep pam_motd /etc/pam.d/*. Talvez você encontre algo como

 session    optional   pam_motd.so

Comente com #. Implemente seu próprio motd (coloque o arquivo / etc / motd no script de inicialização de sua escolha). Claro que agora você pode limpar antes do gato.

    
por 19.01.2017 / 23:04
2

Edite (ou crie) o arquivo ~/.ssh/config e adicione as linhas

PermitLocalCommand yes
LocalCommand /usr/bin/clear

perto do topo. Isso executa clear no cliente (ou seja, sua máquina local) após uma conexão bem-sucedida com o servidor.

    
por 19.01.2017 / 22:58

Tags