Ignatio'nun önerdiği gibi, bununla yapılabilir grep -v
.
Burada başka bir anahtar kalmadığında dosyayı içeren anahtarı kaldıran some unique string
veya authorized_keys
dosyayı silen bir örnek .
if test -f $HOME/.ssh/authorized_keys; then
if grep -v "some unique string" $HOME/.ssh/authorized_keys > $HOME/.ssh/tmp; then
cat $HOME/.ssh/tmp > $HOME/.ssh/authorized_keys && rm $HOME/.ssh/tmp;
else
rm $HOME/.ssh/authorized_keys && rm $HOME/.ssh/tmp;
fi;
fi
some unique string
Kaldırmak istediğiniz anahtarda yalnızca var olan bir şeyle değiştirin .
Ssh üzerinde bir oneliner olarak bu olur
ssh hostname 'if test -f $HOME/.ssh/authorized_keys; then if grep -v "some unique string" $HOME/.ssh/authorized_keys > $HOME/.ssh/tmp; then cat $HOME/.ssh/tmp > $HOME/.ssh/authorized_keys && rm $HOME/.ssh/tmp; else rm $HOME/.ssh/authorized_keys && rm $HOME/.ssh/tmp; fi; fi'
Linux (SLES) ve HP-UX üzerinde test edilmiştir.