Eu criei um script para se conectar ao servidor remoto por meio do SSH no Windows usando o Cygwin. O par de chaves pública e privada é gerado usando o Putty Key-gen. O IP, a porta, a chave privada, etc., são compartilhados usando o Plink. Para a segurança eu introduzi o meu próprio exe junto com a chave privada, que verifica as informações de hardware como o número de série do HDD para que os usuários não possam se conectar ao servidor usando qualquer outro hardware (clonando ou copiando os arquivos do programa). No servidor, haverá mais um aplicativo que audita as informações de hardware do cliente e rejeita a conexão, caso encontre um novo hardware que não seja aprovado. Tudo funciona bem, mas o problema é com a segurança.
Como mencionei, as credenciais ou informações de chave privada e outros detalhes são enviados usando o Plink. O problema é quando o usuário se conecta ao servidor usando essa configuração; o Plink envia as informações para o servidor para autenticação. Aqui o problema é que qualquer um pode ver os comandos que são enviados para o Plink usando o Process explorer etc. Usando isso, qualquer um pode acessar o servidor se tiver a chave privada e sua senha com senha do usuário (Meus aplicativos enviam as informações de hardware para o servidor para outra porta TCP no servidor (ela está em paralelo com a conexão SSH, mas é uma conexão separada). Ela não funciona através do tunelamento SSH. Então, eu fiz meu aplicativo para enviar as informações de hardware para o servidor inicialmente, e, em seguida, o servidor SSH fará a conexão, verificando a chave privada).
Mas, se o usuário obtiver a lógica de como a conexão SSH é feita, ele poderá enviar diretamente esses parâmetros de comando para o Plink.exe e fazer a conexão usando a chave privada e a senha do usuário. Eu não terei nenhum controle sobre isso se isso for feito.
Existe alguma maneira de mascarar esses commadlines no Plink? Se não, por favor mencione quaisquer outras formas ou aplicações alternativas usando as quais eu possa realizar a tarefa acima. Por favor me ajude, obrigado antecipadamente ..