Executa scripts automaticamente no servidor após a conexão ssh O

9

como executar um script automaticamente no servidor logo após o sistema cliente estabelecer a conexão ssh com o servidor

por ex: Suponha que um usuário faça logon no meu computador a partir de outro sistema (conectado via lan) usando a conexão ssh. Naquela época, um script (python ou shell) deve ser executado automaticamente no meu sistema para realizar alguma validação?

Como executar o script automaticamente no sistema do servidor?

    
por Enthusiast 30.12.2013 / 15:24

2 respostas

12

Você pode fazer isso adicionando o seguinte parâmetro ao seu arquivo de configuração (/ etc / ssh / sshd_config).

 ForceCommand
         Forces the execution of the command specified by ForceCommand, ignoring any command supplied by the client and ~/.ssh/rc if present.  The command is invoked by using the user's login shell
         with the -c option.  This applies to shell, command, or subsystem execution.  It is most useful inside a Match block.  The command originally supplied by the client is available in the
         SSH_ORIGINAL_COMMAND environment variable.  Specifying a command of “internal-sftp” will force the use of an in-process sftp server that requires no support files when used with
         ChrootDirectory.

Outra opção é usar os arquivos .ssh / rc por usuário.

Para usar o método ForceCommand, basta adicionar ForceCommand /usr/bin/ownscript na parte inferior do arquivo /etc/ssh/sshd_config (no servidor).

O script é assim:

#!/bin/bash
#Script file for ssh
#
#put your commands here
echo "test" > /tmp/test.txt
#
#exit by calling a shell to open for the ssh session
/bin/bash

Não se esqueça de chmodar o script sudo chmod +x /usr/bin/ownscript

    
por Requist 30.12.2013 / 16:24
0

Para a execução de um script durante o logon, adicione-o como uma chamada de dentro do script / etc / profile. Isso é executado para cada logon, não apenas para logons do ssh.

    
por William Peckham 30.12.2013 / 17:52