使用scp复制传输windows文件到linux

1.检查linux是否安装ssh服:ssh localhost
提示''ssh: connect to host localhost port 22: Connection refused''
如上所示则说明还没有安装ssh或ssh服务未启动.

2.安装
sudo apt-get install openssh-server (使用的是debian,ubuntu,linux mint等系列)
sudo yum install openssh-server (用的是redhat,fedora,centos等系列linux发行版)

3.开启服务:sudo service ssh start

4.连接本机验证是否开启成功:sudo ssh localhost

 

开启成功后就可以使用scp命令传输文件

5.如是非root用户的linux 就要进行以下配置(或切换到root用户sudo -i 或su)

sudo vim /etc/ssh/sshd_config配置:

       LoginGraceTime 120
       PermitRootLogin yes
       StrictModes yes   
       PubkeyAuthentication yes   
       PasswordAuthentication yes
       ChallengeResponseAuthentication no

保存退出
(即可以使用公钥/也可以使用密码验证,这里我们使用密码)

  1. 重启ssh服务
    sudo service ssh restart

  2. 再次验证
    ssh localhost
    提示成功

尝试在linux本机使用scp
pjqdyd@DESKTOP-HO7V45M:~$ scp -r /usr/src pjqdyd@DESKTOP-HO7V45M:/tmp

即复制/usr/src 目录到本地的 /tmp 回车提示输入密码

 

若出现提示"scp: /tmp/: Permission denied"表示我们没有权限修改/tmp文件

8.修改文件权限
cd /usr
sudo chmod 777 src/
llls查看文件目录, src是绿色表示所有用户有权限

cd /
sudo chmod 777 tmp/
llls查看文件目录, tmp是绿色表示所有用户有权限

9.再次执行scp命令就可以了,进入/tmp查看文件:

  1. 从windows电脑复制文件到linux (这里在win桌面新建了文件夹test)
    C:\Users\Z2>scp -r Desktop/test pjqdyd@DESKTOP-HO7V45M:/tmp/
    (复制目录要加-r 复制文件则不用)


    在linux上查看:

    在windows电脑复制linux文件下来

    C:\Users\Z2>scp -r pjqdyd@DESKTOP-HO7V45M:/tmp/src C:\Users\Z2\Desktop

    (注意:要保证复制的目录/目录中的文件是有访问权限的否则会提示Permission denied)

查看桌面目录:

 停止使用ssh
sudo service ssh stop​​​​​​​

总结: 当然windows上也可以安装软件如xftp, winscp等图形界面来操作远程复制文件

上面的步骤中,我的win电脑是已经默认有安装OpenSsh的,在C:\Windows\System32\OpenSSH默认有可执行文件,且有环境变量, 所以可以直接在cmd中使用scp命令,如果没有,请安装OpenSsh到win电脑,并确定ssh服务已启动

Guess you like

Origin blog.csdn.net/lau_jw/article/details/120707658