Я установил OpenSSH для разных версий Linux много раз. Но я не могу на всю жизнь заставить его работать правильно на окнах.
Кажется, есть две стороны вопроса. Права доступа и ключ, используемые sshd
/ssh-agent
.
права доступа
Каждая страница, которую я читаю, имеет разные ответы для правильных разрешений. Некоторые работают, а иногда и программа жалуется на них.
Насколько я понимаю, все ключи должны принадлежать SYSTEM
, с доступом для чтения для NT SERVICE\sshd
и Full Control для Administrators
и SYSTEM
? (Как я понимаю SYSTEM
и Administrators
представляют root в Windows). Я прочитал в документации, что доступ для чтения необходим, только если не используется ssh-add
/ssh-agent
. Я также настроил те же разрешения для файла %USERPROFILE%/.ssh/authorized_keys
и добавил .pub
ключ Ed25519, который я использую, чтобы попытаться подключиться, хотя я также пробовал его с моим собственным сгенерированным RSA ключ.
При установленных разрешениях программа не будет жаловаться при добавлении ключей к агенту или при запуске демона. Единственный параметр, который я изменил в sshd_config
- это ListenAddress
который был привязан к 0.0.0.0, я установил его на локальный IP-адрес компьютера, поскольку SSH будет использоваться только локально.
Ключи
Когда я запускаю sshd.exe
с параметром -d
, я замечаю, что он импортирует 4 ключа по умолчанию из %PROGRAMDATA%/ssh
. Когда я добавил ключ ed25519.pub
к authorized_keys
ключу, за ним последовало HOSTNAME@workstation@HOSTNAME
, где HOSTNAME
- это имя хоста моего компьютера. Обычно я бы ожидал увидеть user@host
. Я попытался создать свой собственный ключ и добавить его, но когда я запускаю sshd.exe -d
кажется, что он никогда не использует ничего, кроме ключей по умолчанию.
В итоге я не могу подключиться к серверу OpenSSH, и журналы в %PROGRAMDATA%/ssh/Logs
только показывают, что сервер запускается . Подводя итог моим вопросам: Каковы правильные разрешения для файлов ключей и authorized_hosts
? Имеет ли значение неправильная аннотация в authorized_keys
ключах? Должен ли я добавить все ключи по умолчанию .pub
в authorized_hosts
? И наконец, что означает sshd
когда упоминает эти ключи во время запуска (см. Журнал)? Разве мой собственный сгенерированный ключ не должен работать, пока я добавляю его в 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.