linux scp排除指定文件夹_SSH服务(scp,sftp,ssh)

本文详细介绍了SCP命令的使用方法及参数,包括文件传输、文件夹传输等,并提供了实际操作案例。同时,还介绍了SFTP的基本操作命令以及如何通过特定端口进行文件传输。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Scp是基于ssh协议在网络之间进行安全传输(文件传输)的命令。

格式:

①传输文件到远端:

Scp [参数] 本地文件路径+ 远程用户@远程ip地址:远程目录

本地文件路径:要传输的文件的正确位置(pwd查看位置信息)(要写绝对路径)

远程用户@远程ip地址:这里可以选择传输到指定的用户上,也可以不指定。直接不写;只写远端主机ip地址

后面加传输到的地址

远程目录:传输文件的接收地址(前面如果没有指定传输的用户身份,也不用担心在用一个ip地址的所有用户都收到传输的内容)

例如:scp /home/zhangjie/zz 192.168.10.131:/home/      

        scp -r /home/zhangjie/Pictures/ root@192.168.10.131:/【传输文件夹,指定接收的用户身份】       

②在本地下载远端主机:   

 Scp [参数] 远端用户身份@远端主机ip地址:远端文件路径 +本机文件路径远端用户身份@远端主机ip地址:远端用户身份和前面一样,可以不用指定。远端IP地址为为相应主机地址

远端文件路径:要下载的文件在远端主机的绝对路径(远端主机上‘要下载的文件’所在的位置)

本机文件路径:下载的文件存放在本机的位置【这里存放信息的地址,可以现建,也可以提前建立】

例如

scp -r root@192.168.10.131:/zz /home/zhangjie/

scp -r  192.168.10.131:/Pictures /home/zhangjie/

参数

-v: 显示详细的连接进度

-P:指定远程主机的sshd端口号(当远程主机sshd端口号被改[默认22]或者远程主机有特殊要求,才需用-P)

-r:用于传送文件夹

实验:

传输普通文件,不指定用户【不指定用户,直接写远端主机IP地址,那要传输过去或者下载到本机,远端主机当前是什么用户身份,在本端也是同样的身份(体现在:传输或下载都要输入远端用户的密码)】

例如下面,传输时,输入的远端主机密码,就是当前远端主机身份的登录密码,和在本端显示的远端主机身份是一样的。 

d1ff1f60a606d183c6ca9e3778e9ee53.png

传输文件夹,指定接收用户

b761de2640f5c47f079776b247572630.png

下载远端主机里一个文件夹/zhan,到本地root家目录/root 

3c1dbbaffbfb30954e5598fcf910523c.png

注:

  1. 如果远程服务器防火墙有特殊限制,scp便要走特殊端口,具体用什么端口视情况而定,命令格式如下:#scp -p 4588 remote@www.abc.com:/usr/local/sin.sh /home/administrator

  2. 2. 使用scp要注意所使用的用户是否具有可读取,执行(r,x)远程服务器相应文件的权限。

  3. 3. 由于scp是基于ssh协议的,查看sshd是否禁止了用户以密码登录,ssh端口号是否被改

    Scp报错:‘permission denied’解决办法

    例:在普通用户下去下载root用户里面的文件

    【无法下载】经检查发现/etc/ssh/sshd_config里面不允许以密码登录(将no改为yes后,下载成功) 不允许密码验证允许密码验证

    837b50bf01a24e5caec0a2dc86d52c99.png

    重启sshd服务,让其生效systemctl restart sshd.service

    重新下载  

2ce5fad7fbd3640bcb3f9373fa72c1db.png

Scp下载

2ce5fad7fbd3640bcb3f9373fa72c1db.png

注:下载远端设备上的目录文件public_html,但是我不想要这个名字,所有在本地生成一个内容和public_html一样,但名称不一样的pu目录文件(即重命名操作)。

17c1fdfe5e30d11b5017573065c31838.png

注:

现在许多服务器为了安全,都会改 ssh默认的22端口,改成一个特殊的端口。所以。在scp或者sftp时,就要指定通过什么端口来迁移。现在,特记下这个特殊端口来scp的命令。

当Scp端口号不是22时:

scp -P port user@serverip:/home/user/filename /home/user/filename以上端口大写P 为参数,port 端口 user 为ssh user serverip 为远程服务器ip或者域名 ,/home/user/filename 为远程服务器的文件名 /home/user/filename 为本地服务服务器的文件名。该命令的作用就是将远程的filename复制到本地对应的目录下面。

sftp远程传输命令

操作远程服务器

ls    显示远端主机的列表

cd   切换远程的工作目录

pwd  显示远程的工作目录

操作本地服务器【如果要对本地操作,只需在上述的指令上加‘l’变为:lls,lcd, lpwd等】

lls   显示本地主机的列表

lcd   切换本地的工作目录  sftp> lcd /home/zhangjie/ 后面加具体要切换的路径

lpwd  查看本地目录信息

上传下载文件参数

get   --- 表示从远程服务器下载数据(单个文件)

mget  --- 表示下载多个文件

put   --- 表示从本地服务器上传数据(单个文件)

mput  --- 表示上传多个文件在sftp的环境下的操作就和一般ftp的操作类似了,ls,rm,mkdir,dir,pwd,等指令都是对远端进行操作, 

[root@localhost /]# sftp -oPort=22 192.168.10.3  登录之后 就在别的设备上面了,192.168.10.3是非本地地址。

Get下载【单个文件】

sftp> get /home/zhangjie/anaconda-ks.cfg远端主机  /home/ 下载到本地10.2的/home目录下本地主机

Fetching /home/zhangjie/anaconda-ks.cfg to /home/anaconda-ks.cfg/home/zhangjie/anaconda-ks.cfg                100% 1225     1.2KB/s   00:00  

结果:

[root@localhost home]# ls

zhangjie   下载之前

[root@localhost home]# ls

anaconda-ks.cfg  zhangjie   下载之后

Put 上传【单个文件】

sftp> put /home/anaconda-ks.cfg 【要上传内容的绝对路径地址--在你本地主机上】  

/home/zhangjie/【要上传到的目的地址的远端主机]】

Uploading /home/anaconda-ks.cfg to /home/zhangjie/anaconda-ks.cfg

/home/anaconda-ks.cfg                         100% 1225     1.2KB/s   00:00    

sftp>

结果

c694d503c6c4303c993117e09d29029c.png

ssh(客户端)配置

ssh客户端建立密钥文件

[root@localhost ~]# ssh-keygen

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa): #密钥文件默认保存位置{或者手动设置保存位置}

Created directory '/root/.ssh'.

Enter passphrase (empty for no passphrase): #直接回车{或者设置密钥文件密码}

Enter same passphrase again: #直接回车{或者再次确认设置的密钥文件密码}

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.The key fingerprint is:

49:d8:78:cb:36:a0:96:9d:2c:f0:cc:b1:7e:45:8e:33 root@localhost.localdomain

The key's randomart image is:+--[ RSA 2048]----+

|                 |

|       +         |

|  . . + =        |

|   = B X o       |

|    X E S        |

|   o . = .       |

|    . .          |

|     .           |

|                 |

+-----------------+

查看SSH客户端密钥文件和要发送到SSH服务器的公钥文件

[root@localhost ~]# cat ~/.ssh/id_rsa     #或者cat /root/.ssh/id_rsa 客户端密钥文件

-----BEGIN RSA PRIVATE KEY-----MIIEpQIBAAKCAQEA9sBX/xIdNvvNKG3ZnQ3+3j6aGXCiFEwH1Ky27hr20GeyhVVvYrvbuBMmNpTTr1XQdH/4fkA6UOK/XX9Zm8MzWWfuyqHfFzWyxEFi/UzmZMDwVPlfEhqdTtyWBdjOWz1stiRHEdRbb7YQ+oarq340ogsLFznoW3hLlWIp56xvI6uG8OAyybu8A29j8Z8A/lv2ZdXeg5Wr0F0xFYB3R7g3+xSb2QpelevHr5EpZsdBhM0iB1xZ+OW3fmvMO4eEfdN2hrB09u6nyLFTuGYATPfEGifOKMpl+qeurIrN66b58UnpKtbbbFhdAcSplgdSruiN7krK/kKHGcCBGTaDMkDx+QIDAQABAoIBACaN5zHzopz0uxmWEGp5xVj0bx+KeciyGIcidXK+w9HMYhhzQPQsZihc1ZuxpWHABtItLKaNYo9A3qW9QEMWPO+7TZRbtn/p5ATGMrFhUp5rhyG/1Rr/DZVE4iwHtDaNYm8TPAeNJrxNtllusWQaVB79mr4GTkf8g9LTg7ivOK5Z0DDkKl4M79gJYmym7/Q4/IFYdBsqtHvjLvhniEyo/VJPs56JdYlsDL8gpUsLZaqSw1Z8bbgEH5N0rmeLLQjP6h30o38S+3umF2iqK198RvHlUnynThzK+c8acWxDF7PY5yjU8EokBUc1l+EbYOP5dCUSFXzhJyd0TQ03u0Z9gAECgYEA/KrDCMoR6FdZB2BcBFBVJja0OOe1gezdkGxZO65ONfpKaA796Rk5+EuBF/J46QXzG4ewK95hj/4svcIWQqtwGtP0qCQIrPwU/ildaD1HrA0QM0zyt9AWNsdeaM2rLhr+6dxKzPl3R77ZKIf/etZ+xHQy7WO50tn6wx5X3cjP4CUCgYEA+gGa4fF7FFkOgAQ6RZnNmFNoT4S0koYbWyvKakthwh7dQQiFjp10dLYgwfZJ7YvXRxFHRmR4XU+9aPgAvh9Dr1n29rsi6m74qGPLSwUYu7JisgJlz6nw5z5EYb/e5anguN0LbAV4spSl7UmMl9yN++nwAG33zaJJOr3zO9s46EUCgYEApv9mcQS92UcCPPHfX6qI3P0DGSlsujcIKlCymdOXNe38B9MA13Qo8IdXB7DnYXzhNaz1L8mHylhA0hraA660Jcc5yXgnk835QhOs/Ryjpn/r2TxeoEcUp5gWOkbVgV+uZHuJpPitceoeNb/NiC8FEmuKzYRAabBRIW2IvbngS1ECgYEApb0gp79GICQ2F6o102R2RxCsa2MHrseXJSbvxu34fg+mEHIM0JIT3TfMmamkMwXtDuEmhkUfAoVVhVw8ac4iOgKDVeiT6iTtVfzqje5wCiblhStPwY7g9PxzqvXfWBP5tbRc2jUS55jiM1/6A8cknafmAvLkP//hWj8JHFpl7J0CgYEAsx2PheiCZuZMJ6wJOKyi1WPemX0Zj69qnbZOBF0VktnNLzEuTGU1AV0rhov/KFwTAJq5LS+2RzmVuyJJLep66ZQdlaQawNyLfYb5+CR/klnbEJQ7bYBr29kbygpi+xdH0LlZtEZC86fDFYVns2lrUDSszz9Xn9AKKR1+d52VGVc=

-----END RSA PRIVATE KEY-----

[root@localhost ~]# cat ~/.ssh/id_rsa.pub #客户端发送到服务器的公钥文件  

#cat ~/.ssh/authorized_keys是服务器保存客户端发来的公钥位置。ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD2wFf/Eh02+80obdmdDf7ePpoZcKIUTAfUrLbuGvbQZ7KFVW9iu9u4EyY2lNOvVdB0f/h+QDpQ4r9df1mbwzNZZ+7Kod8XNbLEQWL9TOZkwPBU+V8SGp1O3JYF2M5bPWy2JEcR1FtvthD6hqurfjSiCwsXOehbeEuVYinnrG8jq4bw4DLJu7wDb2PxnwD+W/Zl1d6DlavQXTEVgHdHuDf7FJvZCl6V68evkSlmx0GEzSIHXFn45bd+a8w7h4R903aGsHT27qfIsVO4ZgBM98QaJ84oymX6p66sis3rpvnxSekq1ttsWF0BxKmWB1Ku6I3uSsr+QocZwIEZNoMyQPH5 root@localhost.localdomain

向服务器发送客户端的公钥

[root@localhost ~]# ssh-copy-id 192.168.10.2

The authenticity of host '192.168.10.2 (192.168.10.2)' can't be established.ECDSA key fingerprint is 0c:e1:e9:c0:6c:b3:42:b8:ae:de:92:b8:49:a1:c8:7d.

Are you sure you want to continue connecting (yes/no)? yes

/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys

root@192.168.10.2's password: #远端服务器登录密码

Number of key(s) added: 1Now try logging into the machine, with:   "ssh '192.168.10.2'"and check to make sure that only the key(s) you wanted were added.

接下来就可以对ssh进行优化操作{sshd_config}

配置服务时的几个注意事项:

1,Linux里面一切都是文件

2,配置服务就是在修改服务的配置文件

3,服务配置完要重启服务{restart}

4,要把配置好的服务加入开机自启

作者:大白兔爱吃烤肉
https://www.bilibili.com/read/cv7572886
出处:bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值