1
resposta

Solução para fazer Deploy em Maquina Windows 10 - SSH e SCP do Linux para Windows

Galera, passei algumas horas para converter toda a aula para minha maquina rodando Windows 10. Caso você tenha o mesmo problema de está utilizando a maquina Windows 10 com Docker Desktop, segue uma dica para você fazer o deploy. Primeiro de tudo galera precisamos instalar o OpenSSH no Windows e existe duas forma de fazer isso, pela linha de comando ou através do painel de controle. Para detalhes como instalar segue o link https://docs.microsoft.com/pt-br/windows-server/administration/openssh/openssh_install_firstuse?tabs=gui

O próximo passo seria habilitar a visualização dos arquivos ocultos Marcando o checkbox para exibir itens ocultos dentro do windows

Após isso, ao acessar o diretório raiz do windows, por exemplo c:\ você verá o diretório ProgramData, dentro de deste diretório tem o diretório ssh, caso seu usuário seja administrador você precisará criar um aquivo chamado administrators_authorized_keys, caso contrário basta criar o arquivo authorized_keys, esse arquivos segue o mesmo padrão do que foi passado na aula, ou seja, você vai copiar a key publica que você criou na image linux do gitlab-runner. Arquivos do diretorio ProgramData\sshApós a criação do arquivo garanta que ele tenha a permissão correta, para isso execute o comando abaixo. Este comando estara copiando a permissão que existe no arquivo ssh_host_dsa_key para o arquivo administrators_authorized_keys. Basicamente ele está dando controle total para o usuario System e para o usuário Administradores

get-acl c:\ProgramData\ssh\ssh_host_dsa_key | set-acl c:\ProgramData\ssh\administrators_authorized_keys

O próximo passo é alterar o arquivo c:\ProgramData\ssh\sshd_config e garantir que as seguintes linhas estejam descomentadas

Arquivo sshd_config a linha  descomentada AuthorizedKeysFileArquivo sshd_config a linha  descomentada Match Group Administrators

Com essas alterações provavelmente já deve funcionar a parte do ssh e scp. Eu tive um outro problema que foi referente ao nome do meu usuário, que contem um espaço em branco, com isso tanto o comando scp, quando o comando ssh precisam de uma pequena alteração. Para o comando ssh é mais simples, basta adicionar uma \ antes do espaço. Exemplo:

ssh username\ com\ espaco@192.168.x.x

Já para o comando scp funcionar corretamente você precisa criar o seguinte arquivo ~/.ssh\config dentro da maquina linux e adicionar o seguinte conteúdo

Host <ip da maquina windows>
    User "username com espaco"

Após preparar todo ambiente é hora de alterar o comando dentro do arquivo gitlab-ci.yaml. Basicamente nós trocamos os ;** por **&

Print Stage deploy do arquivo gitlab-ci.yamlEspero ter ajudado.

1 resposta

Olá, Willian. Tudo bem?

Obrigado e parabéns por compartilhar essa solução!

Bons estudos!