Am instalat OpenSSH pe două dintre serverele mele Windows, folosind Chocolatey. Îl folosesc pentru automatizarea implementărilor din casetele mele Linux. De asemenea, aș dori să pot SSH în PowerShell pe aceste mașini, mai degrabă decât promptul de comandă. Funcționează bine pentru unul dintre ei, dar refuză să lucreze pentru celălalt. Au exact aceeași configurație din câte îmi dau seama.
C:\ProgramData\ssh\sshd_config este același pentru ambele servere:
# Acesta este fișierul de configurare la nivel de sistem al serverului sshd. Vedea
# sshd_config(5) pentru mai multe informații.
# Strategia folosită pentru opțiunile din sshd_config implicit livrate cu
# OpenSSH este de a specifica opțiunile cu valoarea lor implicită unde
# posibil, dar lăsați-le comentate. Opțiunile necomentate înlocuiesc
# valoare implicită.
#Portul 22
#AdresaFamiliei orice
#ListenAddress 0.0.0.0
#ListenAddress ::
#HostKey __PROGRAMDATA__/ssh/ssh_host_rsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_dsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ecdsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ed25519_key
# Cifruri și codare
#RekeyLimit implicit nici unul
# Logare
#SyslogFacility AUTH
INFORMAȚII #LogLevel
# Autentificare:
#LoginGraceTime 2m
#PermitRootLogin prohibit-parolă
#StrictModes da
#MaxAuthTries 6
#MaxSessions 10
PubkeyAuthentication da
# Implicit este să verificați atât .ssh/authorized_keys, cât și .ssh/authorized_keys2
# dar aceasta este suprascrisă, astfel încât instalările vor verifica doar .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys
#AuthorizedPrincipalsFile nici unul
# Pentru ca acest lucru să funcționeze, veți avea nevoie și de chei de gazdă în %programData%/ssh/ssh_known_hosts
#HostbasedAuthentication nr
# Schimbați la yes dacă nu aveți încredere în ~/.ssh/known_hosts pentru
# Autentificare bazată pe gazdă
#IgnoreUserKnownHosts nr
# Nu citiți fișierele ~/.rhosts și ~/.shosts ale utilizatorului
#IgnoreRhosts da
# Pentru a dezactiva parolele de text clar tunelizate, schimbați la nu aici!
PasswordAuthentication nr
#PermitEmptyPasswords nr
# Opțiuni GSSAPI
#GSSAPIAutentificare nr
#AllowAgentForwarding da
#AllowTcpForwarding da
#GatewayPorts nr
#PermitTTY da
#PrintMotd da
#PrintLastLog da
#TCPKeepAlive da
#UseLogin nr
#PermitUserMediu nr
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS nr
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel nr
#ChrootDirectory niciunul
#VersionAddendum niciunul
# nicio cale implicită pentru banner
#Banner nici unul
# suprascrie valoarea implicită fără subsisteme
Subsistemul sftp sftp-server.exe
# Exemplu de setări de suprascrie pe bază de utilizator
#Match User anoncvs
# AllowTcpForwarding nr
# PermisTTY nr
# Server ForceCommand cvs
Administratorii #Match Group
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
C:\Users\Nacht.ssh\authorized_keys este același:
command="C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+jD0xfG/ZG1syjec5VWou4Sc/eDmtqPAZTy7OUbUSLxd0dCcbo5tQmzxeteSMEDMRR51Uqf9H+LuBVdf+l0CRQLMnsp1sZp5abOJoQJPvEcBHuAJZYknXc3TxvmULsSBRNKJu9yu9MIHde2PB9yrTONxwYTCqDjRibZyAUPJbv6S8SDMrf9/4E3eeOo4efOFM5Vp+bGs5BcHqSK5lDnWhoB3acqjo0zOUZk+mVTxjoCUCMBvh3I6V7tqK8+OMmM8XH0ELsCiM47wFcGS3/usj4K0OaMiylBmai0A4HM3vuXZzHoJvpB4b+N+O5lki8kwFPf8lwpgjukR/NC8wxcwR nacht@savage
Testez dintr-o cutie linux. Când fac ssh la primul server, primesc un prompt PowerShell așa cum era de așteptat. Când fac ssh la al doilea server, primesc promptul cmd.Nu pot găsi nicio eroare nicăieri, jurnalele de evenimente arată același conținut pentru ambele servere în categoria „OpenSSH/Operational”, dar celui de-al doilea server îi lipsesc toate jurnalele din categoria „Windows PowerShell” de la pornirea PowerShell.
Pe serverele Windows, iată ce am alergat pentru a instala OpenSSH:
choco install openssh -y
. „C:\Program Files\OpenSSH-Win64\install-sshd.ps1”
start-service sshd
New-NetFirewall Rule -DisplayName "SSH" -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow
chocolatey raportează că aceeași versiune de openssh este instalată pe ambele: openssh 8.0.0.1 [Aprobat]
Ce ar putea fi diferit între aceste două servere care ar putea face ca opțiunea de comandă să funcționeze pentru unul și nu pentru celălalt?