您当前的位置: 首页 >  服务器
  • 0浏览

    0关注

    483博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

通过winscp登陆到Windows openssh+sftp服务器

高精度计算机视觉 发布时间:2022-04-25 23:48:11 ,浏览量:0

今天配置一台安装了很久的win10服务器,电脑需要登陆到该服务器上读取文件。除了Filezilla client和server这样方便的工具以外,我更习惯用winscp,所以记录一下配置过程。

正常情况下,按照ms官方的办法,很容易安装好openssh server,

安装 OpenSSH | Microsoft Docs

若要安装 OpenSSH 组件:

  1. 打开“设置”,选择“应用”>“应用和功能”,然后选择“可选功能” 。

  2. 扫描列表,查看是否已安装 OpenSSH。 如果未安装,请在页面顶部选择“添加功能”,然后:

    • 查找“OpenSSH 客户端”,再单击“安装”
    • 查找“OpenSSH 服务器”,再单击“安装”

设置完成后,回到“应用”>“应用和功能”和“可选功能”,你应会看到已列出 OpenSSH 。

然后,win+r 输入services.msc,找到openssh server选项,右键点击启动就可以了,当然你也可以在这里设置启动方式为auto。

正常到这里就结束了。但是我的系统死活登陆不上。问题如下。

(1)在命令窗口输入where ssh,居然找不到命令

可以在浏览器中找到目录如下,

C:\Windows\System32\OpenSSH\ssh.exe

而且我已经把C:\Windows\System32\OpenSSH加入到了环境变量。可以说这个问题非常奇怪。

解决办法,以管理员身份打开powershell,设置powershell作为openssh的shell,

> where powershell C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

> New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force

(2)winscp连接不上windows sftp服务器,

不清楚这个是不是与前面的问题(1)有关,连接时总是报错,

无法初始化sftp协议 主机是sftp服务器吗

首先是解决上面的问题(1),然后,我用管理员身份添加了另一个帐户,设置了一个很简单的密码,发现可以登陆成功。

本文结束。

附录(如果想使用powershell来安装 openssh):

使用 PowerShell 安装 OpenSSH

若要使用 PowerShell 安装 OpenSSH,请先以管理员身份运行 PowerShell。 为了确保 OpenSSH 可用,请运行以下 cmdlet:

PowerShell复制

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

如果两者均尚未安装,则此操作应返回以下输出:

复制

Name  : OpenSSH.Client~~~~0.0.1.0
State : NotPresent

Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

然后,根据需要安装服务器或客户端组件:

PowerShell复制

# Install the OpenSSH Client
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

# Install the OpenSSH Server
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

这两者应该都会返回以下输出:

复制

Path          :
Online        : True
RestartNeeded : False
启动并配置 OpenSSH 服务器

若要启动并配置 OpenSSH 服务器来开启使用,请以管理员身份打开 PowerShell,然后运行以下命令来启动 sshd service

PowerShell复制

# Start the sshd service
Start-Service sshd

# OPTIONAL but recommended:
Set-Service -Name sshd -StartupType 'Automatic'

# Confirm the Firewall rule is configured. It should be created automatically by setup. Run the following to verify
if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) {
    Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..."
    New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
} else {
    Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists."
}
连接到 OpenSSH 服务器

安装后,可从使用 PowerShell 安装了 OpenSSH 客户端的 Windows 10 或 Windows Server 2019 设备连接到 OpenSSH 服务器,如下所示。 请务必以管理员身份运行 PowerShell:

PowerShell复制

ssh username@servername

连接后,会收到如下所示的消息:

复制

The authenticity of host 'servername (10.00.00.001)' can't be established.
ECDSA key fingerprint is SHA256:().
Are you sure you want to continue connecting (yes/no)?

选择“是”后,该服务器会添加到包含 Windows 客户端上的已知 SSH 主机的列表中。

系统此时会提示你输入密码。 作为安全预防措施,密码在键入的过程中不会显示。

连接后,你将看到 Windows 命令行界面提示符:

复制

domain\username@SERVERNAME C:\Users\username>
使用 Windows 设置来卸载 OpenSSH

若要使用 Windows 设置来卸载 OpenSSH:

  1. 打开“设置”,然后转到“应用”>“应用和功能” 。
  2. 转到“可选功能”。
  3. 在列表中,选择“OpenSSH 客户端”或“OpenSSH 服务器” 。
  4. 选择“卸载”。
使用 PowerShell 卸载 OpenSSH

若要使用 PowerShell 卸载 OpenSSH 组件,请使用以下命令:

PowerShell复制

# Uninstall the OpenSSH Client
Remove-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

# Uninstall the OpenSSH Server
Remove-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

如果在卸载时服务正在使用中,稍后可能需要重启 Windows。

关注
打赏
1661664439
查看更多评论
立即登录/注册

微信扫码登录

0.1043s