一个诡异SSH密钥认证的问题总结
步骤:
A-server 公钥私钥生成服务器
B-client 公钥
C-client 公钥
从A copy 公钥 到B与C服务器上
成功后可以ssh zhangjie@B_ip
然后执行
/usr/bin/rsync -avz -P -e 'ssh -p 22' /tmp/zhangjie/ zhangjie@192.168.2.106:~
这里要注意的是使用rsync -avz参数并且/tmp/zhangjie/这个后面加了“/”
第一次执行是没有问题的
执行完后再次登录B服务器,(假如B服务器ip :192.168.2.106)则提示要密码了
[zhangjie@A-server /]$ ssh zhangjie@192.168.2.106
zhangjie@192.168.2.106's password:
分析:经过对比对端/home/zhangjie的家目录权限发现执行完如上rsync命令后权限变了
drwxrwxr-x 5 zhangjie zhangjie 4096 Jun 10 13:15 . 执行完rsync后的权限
drwx------ 5 zhangjie zhangjie 4096 Aug 21 06:02 . 未执行rsync的权限
原因是如果在执行 rsync 在目录后面加/的话,会改变对端家目录的权限,而ssh登录需要家目录是700权限
可以按照如下不加/执行就没有问题
/usr/bin/rsync -avz -P -e 'ssh -p 22' /tmp/zhangjie zhangjie@192.168.2.106:~