在linux中经常需要通过ssh来登录服务器,同时还需要直接通过scp命令来下载文件到指定的服务器。
在linux中下载服务器上的文件我们平常都会使用rz/sz命令来完成,但是sz命令有一个限制条件,就是待下载的文件大小最大为4G,如果超过4G怎么办呢,并且无法在本机直接连接生产环境的服务器,所以需要通过使用scp命令来使用免登录的下载大文件。
一、安装ssh
需要在服务器端和客户端都安装ssh并启动,如果是centos,直接使用yum install sshd。
二、在客户端本地生成公钥和私钥
因为需要在客户端向生产环境进行ssh免登录,所以需要在客户端生成客户端ssh对应的公钥和私钥,具体命令如下:
ssh-keygen -t rsa
一路回车即可,最后可以看到在~/.ssh目录(当前用户的.ssh隐藏目录中,注意隐藏目录前面有一个点“.”)下会生成“id_rsa”和“id_rsa.pub”这两个文件,其中id_rsa为私钥文件,id_rsa.pub为公钥文件。
三、将公钥文件添加到服务器的允许登录列表中
将id_rsa.pub文件上传到服务器的~/.ssh文件中,然后执行:cat id_rsa.pub >> authorized_keys(将id_rsa.pub的内容追加到 authorized_keys 中, 注意不要用 > ,否则会清空原有的内容,使其他人无法使用原有的密钥登录)
就将内容添加到服务器允许登录列表中。
四、测试
在客户端执行scp user1@192.168.1.101:/data/redis/rdb/6381.rdb /data/redis/db ,即可将远程192.168.1.101机器上的/data/redis/rdb/6381.rdb文件下载到本地/data/redis/db目录中。
同理ssh命令也可以使用,第一次使用ssh的时候会出现一个提示,直接输入yes回车即可。