通常我们会使用scp命令在多个服务器之间互相传输文件。使用过程中,需要正确输入目标机器的密码,否则传输失败。频繁的输入密码会带来工作效率的低下,尤其是当密码很复杂的时候,会令人抓狂。
scp命令格式:
1 | $scp [可选参数] file1 [file2] [file3] usrname@xx.xx.xx.xx:/pwd |
在需要经常互相拷贝文件的机器上预设密码,可以免去每次操作都要输入密码的苦恼。
下面通过示例,从A机器拷贝文件到B机器,来介绍使用方式:
步骤1:
在A机器上,执行以下命令
1 | $cd ~/.ssh/ |
生成id_rsa和id_rsa.pub这两个文件,如果此前这两个已经存在,则不需要执行上述命令。
将id_rsa.pub拷贝到名为authorized_keys的文件中
1 | $cat id_rsa.pub > authorized_keys |
步骤2:
将authorized_keys拷贝到B机器的~/.ssh目录,此时scp还是需要输入密码的
1 | $scp authorized_keys lwang@10.31.33.41:/home/lwang/.ssh |
拷贝成功后,后面再使用scp命令从A拷贝文件到B机器,就无需输入密码了。该方式同样对ssh登陆有效,以后从A机器ssh登陆B机器,也无需输入密码。