Como usar o TightVNC Java Viewer com SSH integrado para conectar-se a uma instância Ubuntu Google Compute Engine?

Como usar o TightVNC Java Viewer com SSH integrado para conectar-se a uma instância Ubuntu Google Compute Engine?

Estou usando o TightVNC Java Viewer baixado aqui:https://www.tightvnc.com/release-jviewer-2.6.phpque possui suporte SSH integrado. Usando isso, gostaria de me conectar à minha instância do Google Compute Engine que executa o Ubuntu 16.04.

Executei as seguintes etapas até agora, consultando várias documentações on-line:

  1. Servidor TightVNC instalado na instância Ubuntu.

  2. Iniciou o servidor VNC usandovncserver -localhost :1

  3. O servidor OpenSSH já está instalado na instância.

  4. Atribuiu um endereço IP externo estático à instância

  5. Tentei acessar o servidor VNC usando o TightVNC Java Viewer especificando o host SSH como o endereço IP externo da instância, a porta SSH como o padrão 22, o usuário SSH como o proprietário da instância, o host remoto como localhost e a porta como a porta VNC 5901.

Mas a conexão falhou com o erro:Não é possível estabelecer conexão SSH: nenhum método de autenticação compatível disponível.

Observação: testei se a conexão VNC funciona sem usar SSH quando abro diretamente a porta 5901nas configurações de firewall do Compute Engine e executo o vncserver :1. Dessa forma, usando o próprio TightVNC Java Viewer, posso acessar o desktop Mate que instalei no Ubuntu. Mas eu gostaria de usar uma conexão segura por meio de SSH. Então, o que mais preciso fazer para ativar isso?

Responder1

Alternativamente, se quiser usar a autenticação baseada em chave mais segura, você pode usar um cliente ssh para estabelecer um túnel de forma independente e executar o vncviewer através dele. Um comando como este funcionaria se você estivesse se conectando a partir de um sistema baseado em Unix:

ssh -i /path/to/key -L 5901:localhost:5901 [email protected]

Ou, se você estiver se conectando pelo Windows, o putty fornece uma interface gráfica e também pode fazer tunelamento. Então você simplesmente apontaria seu vncviewer para localhost:5901 sem ssh e teria uma conexão vnc criptografada sem passar a senha pela rede.

Responder2

Descobri neste post que atualmente o TightVNC suporta apenas autenticação de senha para SSH e não autenticação de chave privada:http://vnc-tight-list.narkive.com/IGmBV7W6/tightvnc-java-viewer-jsch-key-based-authentication. Portanto, para usá-lo, é necessário seguir estas etapas para ativar a autenticação por senha para SSH na instância do Compute Engine:http://itmeditate.blogspot.in/2014/03/enable-password-authentication-for.htmlcom a ressalva nele mencionada.

Além disso, certifique-se de ter a seguinte configuração em seu/etc/ssh/sshd_configarquivo:

PermitRootLogin prohibit-password
PermitEmptyPasswords no
PasswordAuthentication no

e permita a autenticação por senha apenas para seu nome de usuário específico no final do arquivo, conforme mencionado aqui:https://serverfault.com/questions/307407/ssh-allow-password-for-one-user-rest-only-allow-public-keys

informação relacionada