这两天在学习ansible,想要用ssh连接另一台linux服务器
#生成ssh,输入以下指令然后一直回车,在 .ssh/下会有公钥和私钥
ssh-keygen
#发送公钥至目标主机,目标主机的.ssh/下会有authorized_keys,里面存放了公钥
ssh-copy-id root@xxx.xxx.xxx.xxx
刚开始我是用这个方法去向目标主机发送公钥,然后我打算用ansible去ping这个主机的时候
#ping主机的命令
ansible all -m ping
却报错
sh: .ssh/authorized_keys: Permission denied
我查了好多资料,后面是解决了,接下来写出我的解决过程(把之前的.ssh下面的文件都删了,重新再来生成一边,把目标主机authorized_keys也删了)
#生成ssh
ssh-keygen
#将公钥的内容写入authorized_keys中
cat id_rsa.pub >> authorized_keys
#将公钥发送给目标主机
scp id_rsa.pub xxx.xxx.xxx.xxx:/root/.ssh
#-----------------接下来是目标主机的操作----------
#刚开始删除的时候报Operation not permitted,用这个指令就可以了
chattr -i authorized_keys
#删除原来的authorized_keys文件
rm -rf authorized_keys
cat id_rsa.pub >> authorized_keys
然后我再ping的时候就成功了
在我刚毕业的时候也接触了ansible,可是那时候我没有linux基础,那时候也遇到了这个问题,可是解决不了。现在熟悉了linux操作后,才发现这个问题解决的那么简单。学习的路还有很长啊!