SSH:scp命令传输访问被拒(使用密钥对无密码传输)

抛出问题

最近做服务器迁移,打包传输项目至目标服务器,如果项目小的话,我们当然可以通过Lrzsz 命令来传输,如果较大的话,我们就得通过scp命令或者tcp等命令来传输。但是像新服务器传输的时候,提示访问被拒绝,我想通过加密对来,做无密码传输。


皮一下

首先我们要去发起服务器里看ssh的配置,在/root/.ssh/目录下
这里写图片描述

id_rsaid_rsa.pub即为秘钥对,anthorized_keys 就是存放公钥的地方,know_hosts 为通信之间的记录。我们发现在新的服务器中,.ssh目录中有 anthorized_keysknow_hosts两个文件,并没有秘钥对。


  1. 我们需要把发起服务中的秘钥对复制到目标服务器中。
  2. 我们需要把id_rsa.pub公钥内容粘贴到anthorized_keys中,并放到第一条。
  3. 当运行命令是会出现这种情况

“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的公钥,如果不是则删除之前的秘钥,修改为请求服务器的公钥。

你可能感兴趣的:(SSH:scp命令传输访问被拒(使用密钥对无密码传输))