A机按照正常的方法制作公钥id_rsa.pub传到B机并cat B机的.ssh/authorized_keys后与A机的id_rsa.pub内容完全相同,但还是不行的话,A端执行以下两条命令。
ssh-agent bash
ssh-add
如果每次exit掉terminal重新在terminal里输入ssh又提示sign_and_send_pubkey: signing failed: agent refused operation 那可以尝试
修改对端权限,该用户的家目录是550, 家目录下的.ssh目录是700,.ssh/id_rsa是600,.ssh/authorized_keys是600或644,.ssh/known_hosts是600
有一天我发现如果开着selinux,你自己在家目录里创建一个.ssh目录并且改成700权限,然后再在.ssh/authorized_keys添加公钥也是不能用的。所以在各种文件目录权限都已经弄对了的情况,还可以试试关闭对方机器的selinux也许key就好使了。
还可以试试eval `ssh-agent -s`再ssh-add
注:家目录权限700也可以,但660是不成的,排查了好久才发现的。
还有一种比较容易出现的错误,就是看看authorized_keys里面的key是一行还是多行。有时候粘贴过来的时候变成n行了,这种也是不成的。必须是一整行。