工作中有一个需求需要在脚本中每天同步备份文件,需要同步到备份机器上,既然是脚本就不能有人工的干预,只要让他自己定时跑就可以了,这里就配置一个免密来让他不需要人工干预。
A机器进入当前用户的.ssh目录执行ssh-keygen -t rsa
会提示你命名等,没有需求的话回车跳过即可,
会生成一个.pub的私钥,把里面的内容拷到目标机器相同用户的.ssh目录的authorized_keys中,即可完成免密传输
ssh-keygen -t rsa -b 4096 -f my_id -C "email@example.com":
[-t rsa] 表示使用 RSA 算法。
[-b 4096] 表示 RSA 密钥长度 4096 bits (默认 2048 bits)。Ed25519 算法不需要指定。
[-f my_id] 表示在【当前工作目录】下生成一个私钥文件 my_id (同时也会生成一个公钥文件 my_id.pub),这个也可以在交互命名
[-C "email@example.com"] 表示在公钥文件中添加注释,即为这个公钥“起个别名”(不是 id,可以更改)。
如果你的老板没有特殊的要求,一般来说 ssh-keygen -t rsa就够用了
以上图片就是主要操作过程,这里提一点,如果B机器原来就有authoried_keys了,直接把A机器的id_rsa.pub里的内容追加到B机器的authorized_keys中即可,放进去就可以实现免密传输了。
如果有问题,请把chmod 600 authorized_keys,因为权限太大了也是不行的
这里还有个小问题,就是要注意只有同名账户这么做才是有效的,例如我root用户的私钥给到了haha用户的.ssh的authorized_keys中是没法免密登录过去的