Eu configurei o OpenSSH em vários tipos de Linux várias vezes. Mas eu não posso fazê-lo funcionar corretamente no Windows.
Parece haver dois lados da questão. As permissões e a chave usada por sshd
/ ssh-agent
.
Permissões
Cada página que eu li tem uma resposta diferente para as permissões corretas. Alguns trabalhos, e às vezes o programa reclama deles.
Pelo que entendi, todas as chaves devem pertencer SYSTEM
, com acesso de leitura NT SERVICE\sshd
e Controle total para Administrators
e SYSTEM
? (Como eu entendo SYSTEM
e Administrators
represento raiz no Windows). Eu li na documentação que o acesso de leitura é necessário apenas se não estiver usando ssh-add
/ ssh-agent
. Também configurei as mesmas permissões para o %USERPROFILE%/.ssh/authorized_keys
arquivo e adicionei a .pub
chave Ed25519, que é a que estou usando para tentar conectar, embora também tenha tentado com minha própria chave RSA gerada.
Com as permissões definidas dessa maneira, o programa não reclama ao adicionar chaves ao agente ou executar o daemon. A única opção em que mudei sshd_config
é a ListenAddress
que estava vinculando a 0.0.0.0, defino-a no IP local da máquina, pois o SSH será usado apenas localmente.
Chaves
Quando executo sshd.exe
a -d
opção, percebo que ele importa as 4 chaves padrão do %PROGRAMDATA%/ssh
. Quando adicionei a ed25519.pub
chave authorized_keys
, foi seguido por HOSTNAME@workstation@HOSTNAME
, HOSTNAME
sendo o nome do host do meu PC. Normalmente eu esperava ver user@host
. Tentei criar minha própria chave e adicioná-la, mas quando executo, sshd.exe -d
ela parece nunca usar nada além das chaves padrão.
No final, não consigo me conectar ao servidor OpenSSH, e os logs %PROGRAMDATA%/ssh/Logs
parecem mostrar apenas o início do servidor. Para resumir minhas perguntas: Quais são as permissões corretas para os arquivos de chave e authorized_hosts
? A anotação de authorized_keys
estar errado faz diferença? Devo ser a adição de todas as teclas padrão .pub
's em authorized_hosts
? E por último, o que sshd
significa quando menciona essas chaves durante a inicialização (consulte o log)? Minha chave gerada não deveria funcionar apenas enquanto eu a adicionasse authorized_hosts
?
debug1: sshd version OpenSSH_for_Windows_7.6, LibreSSL 2.6.4
debug1: private host key #0: ssh-rsa SHA256:and12LVkEqyXJ2gr0SxFEQObaSFF+Czlcnx2uFjZaJQ
debug1: private host key #1: ssh-dss SHA256:waeLdy4Sm3NT+zbwEMIhbfl8TLe6WeQ0MuZE07CzFQU
debug1: private host key #2: ecdsa-sha2-nistp256 SHA256:G8/7y/04cSE3EezTrcmpK4lRmJ5f5I/CDPcHaPzsv4o
debug1: private host key #3: ssh-ed25519 SHA256:Jvn9UjsbdzH54L/yvGYGfCzJQVIMiIWL5RETbaL2ACA
debug1: rexec_argv[0]='C:\\WINDOWS\\System32\\OpenSSH\\sshd.exe'
debug1: rexec_argv[1]='-d'
debug1: Bind to port 22 on 192.168.1.144.
Server listening on 192.168.1.144 port 22.