Como defino o nome do host e a porta em um arquivo de configuração para Windows usando OpenSSH
o PowerShell?
Como no Unix/Linux:
Edite ou crie o arquivo agora digitando:
nano ~/.ssh/config
Aqui, você pode definir opções de configuração específicas do host. Para especificar sua nova porta, use um formato como este:
Host remote_alias HostName remote_host Port port_num
Isso permitirá que você faça login sem especificar o número da porta específica na linha de comando.
A configuração do OpenSSH e os arquivos de chave (incluindo
config
,known_hosts
,authorized_keys
,id_rsa
etc.), que no *nix vão para~/.ssh
, no Win32-OpenSSH eles vão para%USERPROFILE%\.ssh
.Isso normalmente é:
No Windows 10 com PowerShell, os arquivos de configuração não são criados, então temos que criá-los nós mesmos.
Esta resposta foi feita com: Windows 10 PRO 20H2 (Build 19042.804)
E com o último OpenSSH-Portable (v8.1.0.0p1-Beta) do GitHub oficial aqui
OBS 1 : Aqui mostro como configurar apenas o arquivo de configuração "config" na pasta .ssh , que deve estar na pasta do usuário
$HOME\.ssh
, pois é o que é necessário, normalmente, me parece que os outros arquivos são criados automaticamente quando um servidor Open-SSH instalado. se não for o caso, basta adaptar as linhas de comandoNOTA 2 : Ter Git for Windows e OpenSSH-portable pode causar problemas para a configuração do agente, então você deve saber que é o SSH-Agent usado pelo serviço do Windows
Você pode descobrir qual ssh-agent é usado pelo serviço do Windows com este comando:
Se o
Get-WmiObject
comando não funcionar mais, você pode usar oGet-CimInstance
comando que deve ser seu sucessor definitivo para novas versões do PowerShellDepois disso, você pode configurar o arquivo de configuração SSH como quiser com a mesma sintaxe do Linux
pequeno exemplo
Agora você pode testar sua configuração assim:
Se o ssh não funcionar , é porque você não tem a pasta OpenSSH em suas variáveis de ambiente, você pode adicioná-la à variável de ambiente do sistema como aquela no Powershell se instalar o
OpenSSH Binary em C:\Program Files
e a pasta o nome é OpenSSH-Win64
Outro Comando
Resposta simples à pergunta "onde está localizado o arquivo de configuração do windows openssh CLIENT?"
Para as janelas Openssh CLIENTE C:\ProgramData\ssh\ssh.config
Observe que este arquivo não é criado automaticamente, você mesmo pode criar um. O arquivo é semelhante ao sshD.config, que também está localizado lá, mas é uma configuração para o OpenSSH Server no Windows.
Observe também que as cifras e chaves são definidas como padrão para nenhum, portanto, no mínimo, você precisa defini-lo como tal no arquivo ssh.config : (+ significa adicionar a quaisquer entradas existentes):
A configuração acima funciona para o cliente Cisco SSH para o servidor Win SSH e o cliente Win SSH para o servidor Cisco SSH. para outros, você precisa ver os erros retornados ao emitir o comando SSH no qual faltam cifras e chaves.
por exemplo, no cliente Win SSH:
PS C:\Users\poh> ssh 192.168.111.2
Unable to negotiate with 192.168.111.2 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
No servidor Cisco SSh: (use o comando - debug ip ssh all)
portanto, com base nos erros, o cliente Win precisa da entrada no arquivo ssh.config.:
KexAlgorithms +diffie-hellman-group1-sha1
Após a instalação do OpenSSH, execute algumas etapas de configuração adicionais.
Certifique-se de que a pasta OpenSSH esteja incluída na variável de ambiente do caminho do sistema:
C:\Windows\System32\OpenSSH\
se instalado como o recurso opcional do WindowsC:\Program Files\OpenSSH\
se instalado por meio do download do OpenSSH Configure os dois serviços para iniciar automaticamente:Se você instalou o OpenSSH com o recurso opcional, o Windows criará uma nova regra de firewall para permitir o acesso de entrada do SSH pela porta 22. Se você instalou o OpenSSH a partir do download, crie a regra de firewall com este comando:
Inicie o serviço sshd para gerar as chaves SSH:
As chaves SSH e o arquivo de configuração residem em
C:\ProgramData\ssh
, que é uma pasta oculta. O shell padrão usado pelo SSH é o shell de comando do Windows. Isso precisa mudar para o PowerShell:Agora, quando você se conectar ao sistema por SSH, o PowerShell Core será iniciado e será o shell padrão. Você também pode tornar o shell padrão Windows PowerShell, se desejar.
Há um bug no OpenSSH no Windows. Não funciona com caminhos com espaço, como o caminho para o executável do PowerShell Core! A solução alternativa é criar um link simbólico que crie um caminho que o OpenSSH possa usar:
No arquivo sshd_config , descomente as seguintes linhas:
Adicione esta linha antes de outras linhas do subsistema:
Isso diz ao OpenSSH para executar o PowerShell Core.
Comente a linha:
Depois de salvar as alterações no arquivo sshd_config, reinicie os serviços:
Você precisa reiniciar o serviço sshd após qualquer alteração no arquivo de configuração.