在学习的时候,我们需要传输文件到linux系统,或者是需要在linux系统下传输文件到本机电脑。
不常用,不想安装其他图形化软件。
这时候,我们可以利用ssh协议来传输文件。
windows连接linux系统
1、复制windows文件到linux系统
scp D:\data\1.txt root@192.168.88.161:/root/data
需要输入root信息
此时linux上没有1.txt
显示成功
连接成功。上传文件成功。
2、复制windows目录到linux系统
scp -r D:\data root@192.168.88.161:/root/data
需要输入root信息
显示成功
上传文件目录成功。
3、复制linux文件到windows系统
scp root@192.168.88.161:/root/data/1.txt D:\data
需要root信息
显示成功
本地D盘123目录有这个文件
4、复制linux目录到windows系统
scp -r root@192.168.88.161:/root/data D:\data
显示成功
D盘有123文件夹
文件复制需要具体的文件名称,目录的话,前面需要添加一个 - r 参数。
以上四个操作,基本可以覆盖日常需求。
linux系统连接windows
这种情况是,你只有linux系统可以登陆,而对方是个windows系统。
需要对方的windows系统打开一个ssh协议。
首先windows系统
进入设置,找到应用和功能
找到可选功能
openssh客户端
安装openssh服务器
等待中
安装实在太慢了
我们按照微软的文档进行安装
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系统
1、复制linux文件到windows系统中
scp /root/data/1.txt admin@192.168.1.102:D:\data
成功复制linux文件
2、复制windows文件到linux系统上
跟之前的一样。
拓展:linux系统连接linux系统
scp root@192.168.88.161:/root/1.txt root@192.168.88.162:/root
复制文件的命令如上。