我正在使用 PuTTY 通过 SSH 连接到一台 Linux 机器,并尝试将文件复制到我的本地机器的某个地方(任何地方)。我数字SCP 是这项工作的最佳人选,但其实并不关心,只要解决方案有效!
我cd
进入包含我想要的文件的目录 ( app.war
) 并输入以下内容:
scp app.war ./
我两种方法都试过了,但都无济于事:
scp app.war ./C:/Users/myUser/
scp app.war ./Users/myUser/
这让我想到,也许 SCP 是一个客户端/服务器工具,需要我的 Windows 机器上有一个客户端,但我的 Windows 机器上没有客户端。
我是不是使用了错误的语法?还是我完全偏离了基础?如果是这样,我有什么选择?提前谢谢!
答案1
为了将文件复制回 Windows,您需要在 Windows 上运行 SSH 守护程序/服务,使用这个工具更容易,它能够从 Putty 导入会话,非常简单的转发客户端,您会喜欢它的!
答案2
Windows 10 现在已经内置了 OpenSSH。 https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse
获取管理员命令提示符
Open PowerShell as an Administrator.
检查可用版本
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
安装客户端
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
安装服务器
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
启动服务器并在启动时启用
Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'
查找你的 Windows IP 地址
ipconfig
在您的远程(Linux)机器上,找到您的 IP 地址。
ifconfig
创建公共 SSH 密钥
ssh-keygen.exe
将公钥从本地(Windows)复制到远程(Linux)机器,这样您就不必一直输入密码。
请注意,ssh-copy-id 目前在 Windows 上不可用。
cat C:\Users\YOU/.ssh/id_rsa.pub | ssh USER@REMOTE_IP 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'
在 Linux 机器上执行相同操作(注意,ssh-copy-id 不起作用)
ssh-keygen # if needed
cat ~/.ssh/id_rsa.pub | ssh USER@WINDOWS_IP 'mkdir -p ~/.ssh && type con >> C:/Users/YOU/.ssh/authorized_keys'
上述方法对我来说不起作用,所以我最终手动将公钥 SCP 过来并将其粘贴到 C:/Users/YOU/.ssh/authorized_keys 文件中。
那仍然不起作用,所以我不得不修改 sshd_config 文件。
以管理员身份打开记事本
打开 %programdata%\ssh\sshd_config
添加以下行:
Match User YOU
AuthorizedKeysFile C:/Users/YOU/.ssh/authorized_keys
- 重启
如果您还没有密码,请在 Windows 上创建密码
System Settings...Sign-in options
-- 请注意,您仍然可以通过以下方式禁用 Windows 登录屏幕:a) 将“需要登录”选项设置为从不;b) 使用“netplwiz”命令并取消勾选“用户必须输入密码...”复选框。
现在你应该可以从你的 Linux 机器上使用 SSH 或 SCP
scp FILE WINDOWS_IP:C:/Users/YOU/Desktop
答案3
你说得对。SSHD 是在主机上运行的 SSH 服务器服务。它接受来自 SSH 客户端(如 PuTTy)、SCP 客户端和 SFTP 客户端的连接。
您可以pscp
从同一网站下载油灰已托管。
在 Windows 机器上,你可以执行类似如下的命令
pscp.exe [email protected]:/path/to/app.war c:\tmp
答案4
如果其他人处于非常封闭的环境中,甚至无法安装PuTTY,那么我会这样做:
将文件从 Windows 传输到 Linux(CentOS 7)
在我的 Windows 计算机上,打开命令提示符
scp [local file to send to Linux] [Linux username]@[Linux computer]:[Linux path to save to]
例子:
scp log.txt [email protected]:/home/ryanLinuxUser
scp log.txt [email protected]:/home/ryanLinuxUser
将文件从 Linux 传输到 Windows
再次在我的 Windows 计算机上,打开命令提示符
scp [Linux username]@[Linux computer]:[Linux path to existing file] [local Windows path to save to]
例子:
scp [email protected]:/home/ryanLinuxUser/log.txt log.txt
scp [email protected]:/home/ryanLinuxUser/log.txt log.txt