如何searchauthorized_keys公钥并将其删除

您好,我正在寻找援助search/root/.ssh/authorized_keys给定的公钥(称为$ pub_key),并删除它。 想在bash脚本中做到这一点。

什么是完成这个最好的方法?

grep -v $pub_key /root/.ssh/authorized_keys > /tmp/authorized_keys.new工作吗? 你可以比较两个文件来validation工作。 给定由组成键的随机字符组成的长string,使用$ pub_key的子string来完成此操作可能就足够了。

我想我需要使用sed,但不能弄清楚语法,这是我到目前为止:

 sed -i '/$pub_key/ d' /root/.ssh/authorized_keys 

d之前删除空格,它将按照您的预期工作:

 sed -i '/$pub_key/d' /root/.ssh/authorized_keys 

永远不要忘记perliner的力量!

 $pub_key="AAAABCD"; perl -i "/$pub_key/ or print" /root/.ssh/authorized_keys 

这将执行就地编辑并删除违规密钥。

或者,也许你有一个非常长的authorized_keys文件,你想与gnu并行处理它?

 pub_key="AAAABCD"; parallel -k "echo {} | grep -v $pub_key" </root/.ssh/authorized_keys 

可能性是无止境。

更新:Ole指出的固定错字。 谢谢Ole!