巷に溢れている例のコマンドの改良版。
HTTP、HTTPS
wget https://github.com/nishimura.keys -O - | awk '{gsub(/^$/,"nishimura@github.com",$3);print}' >> authorized_keys
SSH
ssh example.com 'cat .ssh/id_rsa.pub' | awk '{gsub(/^$/,"nishimura@example.com",$3);print}' >> authorized_keys
awkでコメントが無ければ追加する。あればそのまま。
githubはコメントが無いけれど他のサーバーならあるかもしれないので判別する。
awk
やperl
を使わずにgrep
やcat
で出来ないものか…。