本文共 647 字,大约阅读时间需要 2 分钟。
最近做服务器迁移,打包传输项目至目标服务器,如果项目小的话,我们当然可以通过Lrzsz 命令来传输,如果较大的话,我们就得通过scp命令或者tcp等命令来传输。但是像新服务器传输的时候,提示访问被拒绝,我想通过加密对来,做无密码传输。
首先我们要去发起服务器里看ssh的配置,在/root/.ssh/目录下
id_rsa
和id_rsa.pub
即为秘钥对,anthorized_keys
就是存放公钥的地方,know_hosts
为通信之间的记录。我们发现在新的服务器中,.ssh
目录中有anthorized_keys
和know_hosts
两个文件,并没有秘钥对。
id_rsa.pub
公钥内容粘贴到anthorized_keys
中,并放到第一条。当运行命令是会出现这种情况
“Permissions 0644 for ‘/root/.ssh/id_rsa’ are too open”
如果希望ssh公钥生效需满足至少下面两个条件: 1) .ssh目录的权限必须是700 2) .ssh/authorized_keys文件权限必须是600
将权限由0644降低为0600
chmod 0600 ~/.ssh/id_rsa如果还是不行,我们需要观察目标服务器的
know_hosts
, 查看请求IP下的秘钥是不是请求IP的公钥,如果不是则删除之前的秘钥,修改为请求服务器的公钥。