Fork me on GitHub

SCP传输文件免输入密码

通常我们会使用scp命令在多个服务器之间互相传输文件。使用过程中,需要正确输入目标机器的密码,否则传输失败。频繁的输入密码会带来工作效率的低下,尤其是当密码很复杂的时候,会令人抓狂。

scp命令格式:

1
$scp [可选参数] file1 [file2] [file3]  usrname@xx.xx.xx.xx:/pwd

在需要经常互相拷贝文件的机器上预设密码,可以免去每次操作都要输入密码的苦恼。

下面通过示例,从A机器拷贝文件到B机器,来介绍使用方式:

步骤1:

在A机器上,执行以下命令

1
2
$cd ~/.ssh/
$ssh-keygen -t rsa

生成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机器,也无需输入密码。

您的鼓励是我持之以恒的动力