É sabido, que para se conectar via ssh basta executar o seguinte comando:
ssh usuário@ip_local
Onde o usuário é o da maquina remota, ao qual você deseja se conectar, e o ip local de rede da referida máquina.
Exemplo:
ssh felipe@192.168.0.40
No entanto, primeiro é necessário preparar o “terreno”. Suba o serviço sshd (ssh daemon)
sudo systemctl enable sshd && sudo systemctl start sshd
Depois é necessário checar o ip da maquina remota, podendo simplesmente usar o comando:
ip route show
Ou se utilizando do comando nmap.
Agora, um dos principais problemas de acesso, são: parse_vt_settings: Cannot open /dev/tty0 (Permission denied) ou então: xf86OpenConsole: Cannot open virtual console 7 (Permission denied)
Se a maquina que você deseja se conectar, não usa um Display Manager, como lightdm, gdm ou sddm. Se esta sobe o servidor X via xinit, startx ou sx. E ainda, se há um login automático para o tty. Então, simplesmente é necessário indicar o virtual console que você costuma subir o X, exemplo, tty1, e isso é bem simples de se fazer, basta incluir a seguinte variável $XDG_VTNR em seu ~/.zprofile ou ~/.bash_profile
Inclua a variável da seguinte forma, exatamente assim:
[ $XDG_VTNR ] && exec startx
Ou:
if [[ ! $DISPLAY && ${XDG_VTNR} == 1 ]]; then
exec startx
fi
E quando ocorre o erro: Only console users are allowed ? Outra solução simples de se solucionar. Use o editor de sua preferência, eu já gosto do vim. Faça o seguinte:
sudo vim /etc/X11/Xwrapper.config
O arquivo será criado, pois geralmente inexiste, então, lógico, estará vazio. Inclua o seguinte, exatamente assim:
allowed_users = anybody
Para mais informações:
man Xorg.wrap
A configuração padrão do Xwrapper está como console, mesmo que não haja o arquivo Xwrapper.config, pois se trata de uma opção padrão, o que impede de abrir um programa de interface gráfica, como o firefox, via ssh, ou até mesmo mpv ou mplayer. Ao criar Xwrapper.config, como demonstrado acima e mudar para anybody, será possível executar esses programas via ssh, porém do seguinte modo, usando a variável DISPLAY, exemplo:
DISPLAY=:0 mpv video.mp4
Acessando o modo gráfico remotamente
Além do modo padrão, isto é, pelo terminal, temos a capacidade de acessar o modo gráfico durante o acesso remoto por meio do parâmetro -X. Portanto, podemos usar o nosso comando anterior da seguinte maneira:
ssh -X felipe@192.168.0.40
E para abrir um programa com interface gráfica, como o firefox, não esqueça da variável: DISPLAY=:0, como já elucidado.
Obs: Sabemos que acessar o Firefox no modo gráfico é pouco comum. Mas vale saber que também é possível acessar via modo gráfico.
Pontos de atenção
Lembrando que o Linux é case sensitive, por isso o X é maiúsculo.
É importante lembrar, também, que o programa está sendo exibido em minha tela, porém ele não está rodando no computador que estou usando para fazer o acesso remoto e sim na máquina nativa.
Por isso, quando usamos a opção -X, a rede costuma ficar mais lenta, pois os dados com as imagens aumentam o tráfego na rede.
Como desconectar do SSH após um período – Dominando o SSH
Está é uma dica de segurança, para que as conexões SSH não fiquem abertas sem o usuário interagir, podemos estipular um tempo de inatividade para que esta requisição seja desfeita.
É simples apenas editar um único arquivo dentro do servidor SSH.
sudo vim /etc/ssh/sshd_config
Localize as duas linhas:
#ClientAliveInterval 0
#ClientAliveCountMax 3
Edite-as descomentando e alterando para:
ClientAliveInterval 500
ClientAliveCountMax 0
Agora é só reiniciar o servidor SSH
systemctl restart sshd
Obs. o intervalo é lido em segundos ou seja 500 segundos equivale a 08:00 minutos.
Mudando a porta
Abra o arquivo de configuração do daemon SSH executando o seguinte comando:
vim /etc/ssh/sshd_config
Localize esta linha e altere:
# Port 22