Linux scp 复制文件及目录不需要输入密码的技巧

Nov 15, 2017 阅读(90)



当两台LINUX主机之间要互传文件时可使用SCP命令来实现,建立信任关系之后可不输入密码。实现思路是把你的本地主机用户的ssh公匙文件复制到远程主机用户的~/.ssh/authorized_keys文件中 。

这里假设本地主机linux100,远程主机linux200 需要建立信任关系,操作步骤如下:

1、在linux100主机里的用户 ,运行如下命令

ssh-keygen -t rsa

结果如下

image.png

会在用户目录~/.ssh/产生两个文件,id_rsa,id_rsa.pub 


2、把linux100主机上的id_rsa.pub文件拷贝到linux200主机的root用户主目录下的.ssh目录下,并且改名为authorized_keys 即: root/.ssh/authorized_keys 

这样在linux100主机上使用scp命令复制文件到linux200上将不提示输入密码了,直接复制了。

注:如果有多台计算机需要与linux200进行复制,则只需将id_rsa.pub中的内容追加到authorized_keys文件中即可。

执行 cat ~/.ssh/机器的id_rsa.pub >> ~/.ssh/authorized_keys  将内容追加进去


3、复制文件或目录命令: 

复制文件: 

(1)将本地文件上传到远程 

        scp [-P 端口号] 文件名 用户名@计算机IP或者计算机名称:远程路径 

(2)从远程将文件下载本地 

        scp [-P 端口号] 用户名@计算机IP或者计算机名称:文件名 本地路径 

示例:从192.168.1.100机器上下载blog.war 到本机当前目录

scp -P 40022 webadmin@192.168.1.100:~/tomcat/webapps/blog.war ./


复制目录: 

(1)将本地目录上传到远程 

        scp [-P 端口号] -r 目录名 用户名@计算机IP或者计算机名称:远程路径 

(2)从远程将目录下载本地 

        scp [-P 端口号] -r 用户名@计算机IP或者计算机名称:目录名 本地路径

注: [-P 端口号] 这里的端口好是指连接远程机器的SSH的端口号,如果远程机器的SSH端口号没变(默认22)则可以不指定该参数;