上传下载工具scp命令

scp命令

1、介绍

上传和下载的工具有很多,比如 ftp命令、lrzsz工具、scp工具等等。

之前比较喜欢用的是lrzsz这个工具,这个工具很方便,上传使用rz -be、下载使用sz xx.xx,这样就可以把本地的文件上传或下载到远程服务器或者虚拟机中。但是前提是要先安装这个工具 yum install -y lrzsz

本篇介绍的是scp命令。

这个命令的好处在于它是windows、macos系统自带的命令,使用也非常方便简单。

2、使用

使用方法:scp 源文件路径 账户@地址:目的路径

  • 上传文件
scp C:\Users\mby\Desktop\1.txt  root@192.168.31.101:/home/mby/

然后输入密码即可。

  • 下载文件
scp root@192.168.31.101:/home/mby/unlock.jar C:\Users\mby\Desktop\

然后输入密码即可。

3、免密码登录

windows、macos、linux配置都差不多,这里就以windows举例。

windows + r 打开 cmd 窗口,输入命令:

ssh-keygen 

接下来我们需要把这个 id_rsa.pub 公钥传到远程服务器上:

ssh root@192.168.31.100 -p 22 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

完成之后,ssh免密码登录验证一下,成功!

4、配置别名

每次都输入 ssh user@remote -p port,时间久了也会觉得很麻烦,特别是当 user, remote 和 port 都得输入,而且还不好记忆的时候。配置别名可以让我们进一步偷懒。

比如我想用 ssh s01 来替代上面这么一长串,那么在 ~/.ssh/config 里面追加以下内容:

Host s01
    HostName 192.168.31.100
    User root
    Port 22

保存之后,即可用 ssh s01 登入。

5、跳板机

假设现在你有一台处在公网的机器jumpbox,这台机器是在任何地方都能访问到的;

你在实验室也有一台机子lab,这台机子只能在实验室内部访问,但他可以访问公网,你希望能在任何地方都能访问这台机器。

使用 ssh -R 可以轻松地做到这个事情。

jumpbox 可以写成: root@xx.xx.xx.xx,然后需要把lab这个内网的机器生成私钥和公钥,把公钥放到jumpbox里。

lab$ ssh -R 10022:localhost:22 jumpbox

jumpbox$ ssh user@localhost -p 10022
lab$

如果上面这个过程成功了,就说明在你执行 ssh -R 10022:localhost:22 jumpbox 之后,你成功地将 lab 上的 22 端口反向转发到了 jumpbox 的 10022 端口

只要保持这个 ssh 不断,任何一台机器都可以首先连接到 jumpbox,然后通过 ssh user@localhost -p 10022 连回到 lab。可以看到,这里 jumpbox 起到了一个跳板的作用,所以我们把它称作跳板机

posted @ 2020-06-04 13:15  直角漫步  阅读(771)  评论(0编辑  收藏  举报