Linux间Scp远程拷贝认证一次后,不需要再次输入密码 文章目录 Linux间Scp远程拷贝认证一次后,不需要再次输入密码 背景 先实现远程拷贝的问题 如果想在电脑间实现远程拷贝不需要密码 如果多台电脑间无密码复制呢 可能产生问题 背景 我们将执行终端命令的机器称为A_Client,远端机器称为B_Server。 A_Client 的用户名为 Root_A B_Server 的用户名为 Root_B 以下是在机器A_Client和机器B_Server之间建立安全信任关系的步骤: 先实现远程拷贝的问题 scp 从本地上传到远程/home/Root_B目录下 整个文件夹上传过去(A上传到B)(如果是文件,就不需要用参数-r,是文件夹就用-r) scp -r /home/Root_A/test Root_B@192.168.0.0:/home/Root_B 然后会提示你输入另外那台192.168.0.0主机Root_B的用户的登录密码,接着就开始copy了。本地的/home/Root_A/test的test文件夹传到远程的/home/Root_B下。 ps:注意远程的用户名,不然链接失败。 scp从远程到本地 如果想把文件从远程主机copy到当前系统,也很简单。 scp Root_B@192.168.0.0:/home/Root_B/a.txt /home/Root_A 然后会提示你输入另外那台192.168.0.0主机Root_B的用户的登录密码,接着就开始copy了。这样远程的/home/Root_B/a.txt,就复制到了/home/Root_A 如果想在电脑间实现远程拷贝不需要密码 确定自己安装了ssh 查看自己是否有对应的密钥和公钥 $ cd .ssh 或者 $ ssh-keygen -b 1024 -t rsa 然后一直回车,如果有安装就会重新覆盖,没关系。 创建authorized_keys 将公钥证书id_rsa.pub复制到机器Server的root家目录的.ssh子目录中,同时将文件名更换为authorized_keys. $ scp -p /home/Root_A/.ssh/id_rsa.pub Root_B@192.168.0.0:/home/Root_B/.ssh/authorized_keys $ Root_B@192.168.0.0's password: #输入机器B_Server的Root_B用户密码 $ id_rsa.pub 100% |***************| 218 00:00 在执行上述命令时,两台机器的用户之间还未建立安全信任关系,所以还需要输入机器B_Server的Root_B用户密码。 3. 完成 经过以上2步,就在机器A_Client的Root_A和机器B_Server的Root_B之间建立安全信任关系。下面我们看看效果: $ scp -r /home/Root_A/test Root_B@192.168.0.0:/home/Root_B $ text 100% |***************| 19 00:00 现在就可以了,不用输入密码复制。 如果多台电脑间无密码复制呢 没关系,同样的道理,都是复制对方的公钥到主机,但是如果只是一样的步骤是不行的,因为名字会被覆盖的。 所以只能把各个机器的id_rsa.pub复制过来先命名为其他名字,然后把他们全部追加到authorized_keys,就可以啦。 $ scp -p /home/Root_A/.ssh/id_rsa.pub Root_B@192.168.0.0:/home/Root_B/.ssh/CCCC_keys 把CCCC_keys 追加到authorized_keys $ cat /home/Root_A/.ssh/CCCC_keys >> /home/Root_A/.ssh/authorized_keys 目的基本可以实现啦。 可能产生问题 SSH生成id_rsa, id_rsa.pub后,连接服务器却报:Agent admitted failure to sign using the key错误。 解决方法:在当前用户下执行命令: $ ssh-add 即可解决。注意不要把用户名和对应的ip写错。 (责任编辑:IT) |