如何正确配置Win32-OpenSSH身份验证

Wak*_*nka 6 windows ssh openssh

我正在使用没有管理员权限的 PC,我需要设置 SSH 服务器。我试过mobaSSHfreeSSHd,但都需要管理员权限。然后我找到了Win32-OpenSSH,它似乎终于可以工作了。老实说,我实际上不明白为什么这些服务需要管理员权限,因为我已经设置了例如 FTP 服务器侦听端口 21 没有问题,但是好的,回到问题。

我已经运行ssh-keygen.exe -A包含在Win32-OpenSSH 中,它在Win32-OpenSSH目录中创建了以下文件:

ssh_host_dsa_key
ssh_host_dsa_key.pub

ssh_host_ecdsa_key
ssh_host_ecdsa_key.pub

ssh_host_ed25519_key
ssh_host_ed25519_key.pub

ssh_host_rsa_key
ssh_host_rsa_key.pub
Run Code Online (Sandbox Code Playgroud)

然后我开始了sshd.exe。我的第一次尝试是连接putty.exeusing: USERNAME@localhost。我使用了与 Windows 登录相同的凭据,但它不起作用:

Using username "USERNAME".
USERNAME@localhost's password:
Access denied
USERNAME@localhost's password:
Run Code Online (Sandbox Code Playgroud)

第二次尝试是使用puttygen.exe转换ssh_host_rsa_key*.ppk文件并加载此文件,pageant.exe然后使用与第一次尝试相同的步骤。在此之后sshd.exe,您可以看到消息发生了变化,但登录仍然无法正常工作:

Using username "USERNAME".
Authenticating with public key "imported-openssh-key" from agent
Server refused public-key signature despite accepting key!
USERNAME@localhost's password:
Access denied
USERNAME@localhost's password:
Run Code Online (Sandbox Code Playgroud)

我猜服务器安装正确,问题出在身份验证上。如何正确设置Win32-OpenSSH以使用密码或密钥登录?

Mar*_*ryl 4

对于密码身份验证,只需使用USERNAME. 无法USERNAME@localhost工作。


要使公钥身份验证起作用:

  • 在 Windows 帐户配置文件文件夹(通常位于)中创建.ssh包含包含您的公钥的文件的文件夹。authorized_keysC:\Users\username\.ssh
  • 确保唯一相应的 Windows 帐户对该文件夹和文件具有写入权限(如果您在使用相应帐户登录时创建文件夹和文件,则默认访问级别是多少)。

有关两者的详细信息,请参阅我的指南使用 OpenSSH 在 Windows 上安装 SFTP/SSH 服务器