Usar SSH para usar com segurança a Conexão de Área de Trabalho Remota com o Windows
Ambiente operacional
- Conexão remota com o Windows
-
- Janelas 11
- Conexão remota do Windows
-
- Janelas 10
- OpenSSH
-
- OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
Pré-requisitos
- Conexão remota com o Windows
-
- Windows 10 ou posterior (Pro ou outra edição necessária). No entanto, isso não se aplica se o OpenSSH puder ser preparado separadamente.
- Windows Server 2019 ou posterior. No entanto, isso não se aplica se o OpenSSH puder ser preparado separadamente.
- Conexão remota do Windows
-
- Windows (a maioria das versões é possível)
- Windows Server (a maioria das versões é possível)
Inicialmente
Depois de criar um ambiente Windows na Internet na nuvem ou VPS, você geralmente usa uma conexão de área de trabalho remota para operar o destino remoto do Windows.
Na conexão de área de trabalho remota, o conteúdo de comunicação é criptografado e, se o nome de usuário e a senha não vazarem, outras pessoas não farão login sem permissão. Há sempre a preocupação de que as pessoas tentem fazer login de qualquer lugar.
Algumas das principais nuvens têm firewalls separados das máquinas virtuais, e há uma função para restringir a origem da conexão. Esses recursos podem não estar disponíveis em todos os serviços. Especialmente em ambientes construídos com baixo orçamento, há muitos casos em que tais funções não estão disponíveis.
Portanto, desta vez, eu gostaria de limitar a fonte de conexão tanto quanto possível, adicionando a função SSH . Como a chave privada e a chave pública são usadas, desde que a chave privada não seja vazada, a possibilidade de fazer login remotamente de outro ambiente pode ser minimizada ao máximo.
Neste caso, usaremos o OpenSSH para construir o ambiente SSH.
Criar um ambiente Windows de destino remoto
Crie um ambiente Windows que permita que você se conecte remotamente pela Internet. Não importa onde ele é criado, desde que ele passe pela Internet, mas para essa verificação, ele será criado como uma máquina virtual no Microsoft Azure. As etapas para compilar no Azure não são relevantes para esta dica, portanto, vou omiti-las. Como a porta 22 será usada desta vez, se você usar o Azure, verifique se a comunicação da porta 22 passa pelas configurações da máquina virtual no Azure.
Se você estiver criando em um ambiente diferente do Azure, verifique se você está em uma posição em que possa fazer uma conexão de área de trabalho remota com o Windows para seu ambiente.
Além disso, a versão do Windows destina-se ao Windows 10 ou posterior, ou ao Windows Server 2019 ou posterior, o que facilita a criação de um ambiente OpenSSH. Ele pode ser implementado em um ambiente anterior, mas leva um pouco mais de tempo e esforço porque você precisa baixar e configurar o OpenSSH separadamente.
Nesse caso, o procedimento é o mesmo do SFTP, portanto, consulte as dicas a seguir.
Configurando o OpenSSH
A partir daqui, trabalharemos no ambiente remoto do Windows. Primeiro, conecte-se ao destino remoto com uma conexão de área de trabalho remota. Se sua nuvem ou VPS fornecer um console, você poderá usá-lo. Como estamos operando em um ambiente Windows 11 desta vez, as etapas podem ser ligeiramente diferentes em outras versões.
Abra o menu Iniciar e selecione Configurações.
Selecione um aplicativo.
Selecione Recursos opcionais.
Selecione Mostrar recursos.
Há "OpenSSH Server" um pouco mais abaixo na lista, então verifique-o e clique em "Next".
Clique em Instalar.
Quando a instalação estiver concluída e "OpenSSH Server" for adicionado à lista abaixo, você está pronto.
Configuração de serviço para OpenSSH
Clique com o botão direito do mouse no menu Iniciar e selecione Gerenciamento do computador.
Selecione Serviços na lista à esquerda.
Encontre "OpenSSH SSH Server" na lista do meio, clique com o botão direito do mouse e selecione "Propriedades".
Ao conectar-se remotamente, queremos que o servidor OpenSSH esteja em execução, então defina o "Tipo de inicialização" como "Automático".
Como ele não está rodando no momento, vou iniciá-lo aqui, inclusive definindo-o.
Uma vez iniciado, clique no botão OK para fechá-lo. Ele deve estar sendo executado na lista.
Configurando o OpenSSH
No estado inicial, a autenticação por chave privada está desabilitada, portanto, defina-a. Abra a seguinte pasta no Explorer.
- C:\ProgramData\ssh
No entanto, a pasta acima pode ser uma pasta oculta, portanto, torne-a visível definindo as opções do Explorer.
Há um arquivo chamado na pasta, então abra-o com um editor de texto, como o sshd_config
bloco de notas.
Como faremos alterações desta vez, copie e duplique como backup sshd_config_old
antes da alteração.
PubkeyAuthentication yes
Procurar:
Este item é uma configuração para habilitar ou não a autenticação de chave secreta.
Por padrão, ele está desativado e diz , mas é comentado, yes
então descomente-o.
Antes da mudança
#PubkeyAuthentication yes
Após a mudança
PubkeyAuthentication yes
PasswordAuthentication yes
Procurar:
Este item é uma configuração para habilitar ou não a autenticação de senha.
Ele é habilitado por padrão e, mesmo se você habilitar a autenticação de chave privada, não fará sentido do ponto de vista da segurança se permanecer habilitado, portanto, descomente e no
defina .
Antes da mudança
#PasswordAuthentication yes
Após a mudança
PasswordAuthentication no
Comente a seguinte linha perto do final: Essa é a configuração chave para o grupo de administradores, e vamos desativá-la porque daremos suporte a logins por usuário nesse caso.
Antes da mudança
Match Group administrators
AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
Após a mudança
#Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
Depois de salvar o arquivo após OpenSSH SSH Server
a alteração, reinicie o serviço para refletir as configurações.
Se você quiser alterar a porta
Se você quiser alterar a porta SSH, altere o seguinte.
Antes da mudança
#Port 22
Após a mudança
#Port <任意の番号>
Ao alterar o número da porta, a porta padrão não será atacada, o que levará a uma segurança mais forte. Por outro lado, aumenta a complexidade da operação, por isso é preciso ter cuidado.
Se você alterar o número da porta, deverá especificar uma porta diferente de 22 ao se conectar.
Criando chaves privadas e públicas
Esta é uma tarefa do lado do cliente. No entanto, não importa onde você trabalha. No entanto, tenha cuidado para não vazar a chave privada que você criou.
Se você tiver o Windows 10 ou posterior, o Windows Server 2019 ou posterior, o cliente OpenSSH será instalado por padrão, para que você possa criá-lo facilmente com um comando. Em outros ambientes, você precisará instalar um cliente OpenSSH separado ou usar uma ferramenta separada.
As dicas a seguir são para SFTP, mas consulte-as para configurar um cliente OpenSSH.
No ambiente do cliente, inicie um prompt de comando, PowerShell, terminal ou qualquer ferramenta que possa executar comandos.
Como você criará um arquivo, mova cd
para qualquer diretório com um comando.
Execute o seguinte comando:
ssh-keygen -t rsa -f id_rsa
Você pode definir uma senha (senha) para a chave, portanto, digite-a, se necessário. Se você definir uma senha, a segurança será aprimorada, mas aumentará o tempo e o esforço de inserir a senha no processo posterior.
Uma chave pública (id_rsa.pub) e uma chave privada (id_rsa) foram criadas.
A chave pública (id_rsa.pub) será colocada no destino remoto mais tarde. A chave privada pode estar localizada em qualquer lugar no cliente remoto, mas deve estar localizada em uma pasta que só pode ser acessada pela conta usada para fins de segurança. Basicamente, acho que não há problema se você colocá-lo na seguinte pasta no lado do cliente. Se você usar o cliente OpenSSH, ele navegará para essa pasta por padrão.
C:\Users\<ユーザー名>\.ssh
Se não for possível criar a pasta acima no Explorer, você poderá criá-la com o seguinte comando.
cd C:\Users\<ユーザー名>
mkdir .ssh
Colocação de chaves públicas
Esta é uma operação remota.
Coloque a chave pública criada (id_rsa.pub) no destino remoto.
Mova este arquivo para a seguinte pasta: <ユーザー名>
é o nome da conta de usuário na qual você fará login quando realmente se conectar remotamente.
C:\Users\<ユーザー名>\.ssh
Se você não tiver uma pasta e não puder criar uma pasta no Explorer, poderá criar uma pasta com o seguinte comando.
cd C:\Users\<ユーザー名>
mkdir .ssh
Altere o arquivo authorized_keys
de chave pública implantado para . É isso.
Dependendo do seu ambiente, talvez você já authorized_keys
tenha o arquivo. Esse pode ser o caso se você tiver configurado uma conexão SSH para outros fins.
Nesse caso authorized_keys
, você registrou o arquivo abrindo o arquivo e o arquivo com o bloco de notas, etc., e id_rsa.pub
listando o conteúdo do id_rsa.pub na próxima linha do authorized_keys.
Você pode registrar várias chaves públicas no authorized_keys.
Conecte-se com SSH
Ao conectar-se com o comando OpenSSH
Há várias maneiras de se conectar com o SSH, mas vamos começar com uma conexão baseada em comando. Na verdade, a conexão com o menor número de etapas é por comando. Como pré-requisito, você deve ter o cliente OpenSSH instalado.
Inicie a ferramenta de comando de sua escolha (Prompt de Comando, PowerShell, Terminal).
Digite o seguinte comando:
Formato do comando
ssh -i <秘密鍵ファイルパス> -L <ローカルの空いているポート>:127.0.0.1:3389 <接続先のユーザーアカウント名>@<接続先サーバーIPアドレス、またはホスト名>
A seguir está uma explicação dos parâmetros. Configure-o de acordo com o seu ambiente.
parâmetro variávelDescrição do nome do | ||
---|---|---|
SSH | Uma declaração para usar SSH com OpenSSH. | |
-eu | Uma declaração para usar um arquivo de chave privada. | |
< caminho do arquivo de chave privada> | ● | Descreva o local do arquivo de chave privada que você criou. C:\Users\<ユーザー名>\.ssh O caminho é opcional. Caso contrário, um caminho absoluto ou relativo será necessário. |
-L | Essa declaração especifica a porta a ser usada local e remotamente ao se conectar a um destino remoto. | |
< porto livre local> | ● | A Conexão de Área de Trabalho Remota normalmente usa a porta 3389, mas você pode se conectar usando qualquer porta. Não importa o número, desde que seja gratuito. |
127.0.0.1 | Esse é o endereço IP do host que reconhece de onde o destino remoto está conectado. Basicamente, 127.0.0.1 é bom. | |
3389 | O número da porta a ser usado no destino remoto. O destino remoto geralmente é conectado pela porta 3389 com uma conexão de área de trabalho remota, para que possa ser deixado como está. | |
< nome da conta de usuário à qual você deseja se conectar> | ● | Especifique a qual conta você deseja se conectar no destino remoto. |
< endereço IP ou nome do host do servidor ao qual se conectar> | ● | Especifica o servidor de destino remoto. |
Exemplo de entrada
ssh -i id_rsa -L 13389:127.0.0.1:3389 TestUser@52.140.221.194
Na primeira vez, você será solicitado a fornecer uma tecla, então yes
digite e pressione Enter.
Se você tiver uma senha definida para sua chave privada, deverá inseri-la.
O seguinte estará em um estado conectado. Você pode ver que o usuário no lado do servidor está sendo exibido, não o cliente. Enquanto esta janela é exibida, ela está conectada, portanto, não feche-a. Se você fechá-lo, a conexão será interrompida.
Ao se conectar com o PuTTY
Aqui, tentaremos nos conectar ao SSH com uma ferramenta chamada PuTTY.
Convertendo a chave privada
Primeiro, se você usar PuTTY, você precisará converter a chave privada. Eu acho que há "puttygen .exe" na ferramenta anexada, então por favor, inicie-o.
Selecione "Conversões -> Importar chave" no menu.
Selecione a chave privada que você criou, neste caso, "id_rsa".
Se você definiu uma senha, insira-a.
Selecione "Arquivo -> Salvar chave privada" no menu.
「. .ppk".
Uma vez criado, você está pronto.
Configurando o PuTTY
Lançar massa.exe.
Insira o endereço IP do ambiente ao qual você deseja se conectar. Se você tiver um domínio, poderá se conectar a um nome de domínio.
Selecione Conexão -> Dados no menu à esquerda. No campo Nome de usuário de login automático, insira o nome da conta do ambiente ao qual você deseja se conectar.
No menu à esquerda, selecione Conexão -> SSH -> Túneis. Digite cada um deles no campo de entrada abaixo e clique no botão "Adicionar".
Nome do parâmetro Comentários do valor | ||
---|---|---|
Porta de origem | 13389 | Qualquer porto livre serve. Vou usá-lo mais tarde |
Destino | 127.0.0.1:3389 |
Quando adicionado, deve ter a seguinte aparência:
Em seguida, selecione "Conexão -> SSH -> Auth -> Cledentioals" no menu à esquerda e clique no botão Procurar por "Arquivo de chave privada para autenticação".
Selecione a chave privada que você salvou.
Selecione "Sessão" no menu à esquerda, digite um nome de sua escolha para Salvar sessões e clique no botão Salvar. A partir da próxima vez, tudo bem se você carregar essa configuração.
Após confirmar o salvamento, clique no botão "Abrir".
A tela a seguir será exibida ao se conectar pela primeira vez. Clique no botão Aceitar.
Você verá uma tela que se parece com um prompt de comando. Se você tiver uma senha para a chave privada, insira-a.
Se o conteúdo de exibição for alterado conforme mostrado abaixo, ele será conectado. Você pode ver que o usuário no lado do servidor está sendo exibido, não o cliente. Enquanto esta janela é exibida, ela está conectada, portanto, não feche-a. Se você fechá-lo, a conexão será interrompida.
Fazer uma conexão de área de trabalho remota com SSH
Agora, vamos fazer uma conexão de área de trabalho remota enquanto estiver conectado com SSH.
Ao se conectar, a parte do computador não é o endereço remoto real, mas "localhost:< > o nome da porta especificado na conexão SSH". No exemplo, 13389 foi especificado, então aqui vamos nos conectar a "localhost:13389".
Se a tela de autenticação for exibida, você poderá julgar que a conexão está concluída. Digite seu nome de usuário e senha para se conectar.
Se você puder se conectar assim, você conseguiu.
Desativar conexões regulares de área de trabalho remota nas configurações de firewall
No momento do item anterior, agora você pode se conectar a uma área de trabalho remota usando SSH. No entanto, neste estado, "Conexão de Área de Trabalho Remota por SSH" só foi adicionada a "Conexão de Área de Trabalho Remota Normal". Em termos de segurança, não acrescenta nada. Portanto, a próxima coisa a fazer é impedir uma "conexão de área de trabalho remota normal".
Se você fizer essa configuração, você não será capaz de se conectar, exceto para "conexão de área de trabalho remota por SSH", portanto, se você mexer com as configurações, você pode não ter os meios para se conectar remotamente. Portanto, certifique-se de verificar com antecedência se a "conexão de área de trabalho remota por SSH" é possível e ser capaz de operar o ambiente remoto por outros meios, mesmo que o cliente ao qual você está tentando se conectar desapareça.
Aqui, defina as configurações de firewall em "Conexão de Área de Trabalho Remota via SSH". Isso ocorre porque se você executar a operação com "conexão de área de trabalho remota normal", ela será desconectada no momento em que você definir o firewall.
Exiba o Firewall do Windows Defender com Segurança Avançada. Dependendo da versão do Windows, a localização da tela varia, portanto, exiba-a de acordo com essa versão.
Selecione Regras de entrada no menu à esquerda.
Na lista do meio, localize "Área de Trabalho Remota - Modo de Usuário (TCP In)" e abra suas propriedades.
Selecione a guia Escopo, altere o endereço IP local para Esses endereços IP e clique no botão Adicionar.
Digite 127.0.0.1 e clique no botão OK. Isso impedirá conexões de área de trabalho remota de qualquer lugar que não seja 127.0.0.1. 127.0.0.1 é o endereço IP que aponta para a sua máquina. Se você inserir o valor errado, talvez não consiga se conectar de qualquer lugar, portanto, tenha cuidado.
Clique no botão OK para confirmar.
Por enquanto, isso por enquanto é uma contramedida, mas também vamos definir "Área de Trabalho Remota - Modo de Usuário (UDP Receive)".
Verifique se você não pode se conectar remotamente com nada além de SSH
Agora, tente estabelecer uma conexão de área de trabalho remota a partir de outro computador que não esteja usando SSH.
Se você puder se conectar, a tela de autenticação será exibida. Tudo bem se você puder confirmar que a conexão não pode ser feita conforme mostrado abaixo.
Resumo
Com o Windows mais recente, agora é fácil introduzir um servidor SSH. Ao adicionar configurações, agora você pode aumentar facilmente a segurança da sua conexão de área de trabalho remota. No entanto, uma vez que é responsável apenas por medidas de segurança no próprio Windows, Se você quiser torná-lo mais seguro, acho que é preferível configurar um servidor SSH separado ou firewall antes de se conectar ao Windows.
Além disso, você pode definir a segurança firmemente usando SSH, mas quando é muito difícil, ninguém pode se conectar devido a um erro operacional. Cuidado para não acabar com isso.