Como eu crio um usuário SSH que só pode acessar o MySQL?

2

Eu quero configurar um túnel SSH para meu banco de dados MySQL em um servidor remoto. Posso criar um usuário SSH que tenha apenas as permissões mínimas estritamente necessárias para acessar o MySQL, por exemplo, com um aplicativo de gerenciamento de banco de dados como HeidiSQL ou Sequel Pro? Não quero que o usuário possa acessar qualquer outra coisa.

    
por Wistar 09.10.2015 / 17:06

1 resposta

2

Você pode adicionar um usuário sem um shell de login válido:

# useradd -s /sbin/nologin dbuser

Defina sua senha:

# passwd dbuser

Ou deixe-o sem definição e faça as chaves SSH:

(on local machine)
$ ssh-keygen

(on remote machine)
# su -s /bin/bash - dbuser
$ cat local_id_rsa.pub >>~/.ssh/authorized_keys

Neste ponto, você pode usar o SSH para criar o túnel:

ssh -TfnN -L localhost:<local_port>:localhost:<db_server_port> dbuser@remote_host

Se você usou as chaves SSH para autenticar, isso funcionará automaticamente, caso contrário, você precisará digitar uma senha. O ssh irá para o fundo imediatamente após a autenticação e não tentará executar nenhum comando, mas o túnel estará aberto. Digite "localhost" e a tag < local_port > valor em seu cliente de banco de dados local e ele funcionará. No entanto:

$ ssh dbuser@remote_host
dbuser@remote_host's password:
Last login: Fri Oct  9 09:27:24 2015 from local_host
This account is currently not available.
Connection to remote_host closed.

O SSH não executará nenhum shell ou comando como usuário remoto; /sbin/nologin vai expulsar todas as vezes.

    
por 09.10.2015 / 17:33