linux主机用scp传输文件的时候需要输入密码确认,每次都输入密码很麻烦,我们可以通过建立信任关系,实现不输入密码传输文件(ssh登录同理)。
比如从机器A向机器B传输文件,首先在机器A生成密钥对,一路回车即可。
ssh-keygen -t rsa
然后将A机器当前用户下.ssh/ 目录中的 id_rsa.pub 文件复制到机器 B 的相同用户的.ssh/ 目录中,注意需要相同用户名才可以。
scp /home/{user}/.ssh/id_rsa.pub {user}@{ipB}:/home/{user}/id_rsa.pub
然后将id_rsa.pub的内容添加到机器B用户.ssh目录下的authorized_keys文件中
cat id_rsa.pub >> .ssh/authorized_keys
此时,就实现了机器A到机器B的scp免密传输。
但是,执行到这里,发现竟然还要输入密码才能传输文件。查阅一些资料,了解到是文件权限的问题,.ssh文件夹需要700权限,authorized_keys文件需要600权限。
chmod 700 ~/.ssh/
chmod 600 ~/.ssh/authorized_keys
设置权限后,即可免密传输了。
如果需要机器B像机器A免密传输,反向操作即可!
网友评论