通过ssh协议在各系统间传输文件

Posted 最爱大苹果

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过ssh协议在各系统间传输文件相关的知识,希望对你有一定的参考价值。

在学习的时候,我们需要传输文件到linux系统,或者是需要在linux系统下传输文件到本机电脑。

不常用,不想安装其他图形化软件。 

这时候,我们可以利用ssh协议来传输文件。


windows连接linux系统


1、复制windows文件到linux系统


scp D:\\data\\1.txt root@192.168.88.161:/root/data

需要输入root信息


通过ssh协议在各系统间传输文件_windows系统


此时linux上没有1.txt


通过ssh协议在各系统间传输文件_各系统传输文件_02


显示成功


通过ssh协议在各系统间传输文件_各系统传输文件_03


连接成功。上传文件成功。


2、复制windows目录到linux系统


scp -r D:\\data root@192.168.88.161:/root/data

需要输入root信息


通过ssh协议在各系统间传输文件_windows系统_04


显示成功


通过ssh协议在各系统间传输文件_linux系统_05


上传文件目录成功。


3、复制linux文件到windows系统


scp root@192.168.88.161:/root/data/1.txt D:\\data

需要root信息


通过ssh协议在各系统间传输文件_windows系统_06


显示成功


通过ssh协议在各系统间传输文件_各系统传输文件_07


本地D盘123目录有这个文件


4、复制linux目录到windows系统


scp -r root@192.168.88.161:/root/data D:\\data


通过ssh协议在各系统间传输文件_各系统传输文件_08


显示成功


通过ssh协议在各系统间传输文件_linux系统_09



D盘有123文件夹


文件复制需要具体的文件名称,目录的话,前面需要添加一个 - r 参数。


以上四个操作,基本可以覆盖日常需求。


linux系统连接windows


这种情况是,你只有linux系统可以登陆,而对方是个windows系统。

需要对方的windows系统打开一个ssh协议。


首先windows系统


进入设置,找到应用和功能


通过ssh协议在各系统间传输文件_各系统传输文件_10


找到可选功能


通过ssh协议在各系统间传输文件_各系统传输文件_11



openssh客户端



通过ssh协议在各系统间传输文件_linux系统_12



安装openssh服务器


通过ssh协议在各系统间传输文件_windows系统_13



等待中


通过ssh协议在各系统间传输文件_linux系统_14



安装实在太慢了


通过ssh协议在各系统间传输文件_linux系统_15



我们按照微软的文档进行安装


https://docs.microsoft.com/zh-cn/windows-server/administration/openssh/openssh_install_firstuse


输入命令


# 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


我们需要安装server端


启动ssh服务端,并且开启防火墙22号端口


# 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."


可以成功ssh到windows系统


通过ssh协议在各系统间传输文件_windows系统_16


1、复制linux文件到windows系统中


scp /root/data/1.txt admin@192.168.1.102:D:\\data


通过ssh协议在各系统间传输文件_windows系统_17


成功复制linux文件


2、复制windows文件到linux系统上


跟之前的一样。



拓展:linux系统连接linux系统


scp root@192.168.88.161:/root/1.txt root@192.168.88.162:/root


复制文件的命令如上。   

以上是关于通过ssh协议在各系统间传输文件的主要内容,如果未能解决你的问题,请参考以下文章

传输文件

RDP/SSH/VNC三种文件传输协议有什么区别?

CentOS使用sftp命令进行主机间文件传输

通过SSH实现Windows与linux之间传输文件

FTPS (FTP over SSL) vs. SFTP (SSH 文件传输协议): 我们如何做出选择

Linus