authorized_keysのコマンド
authorized_keysにcommandってのを書くとその公開鍵でログインしてきたユーザにそのコマンドを実行させることが出来るということを知った。きっと知らなかったのは私だけでしょう。
command="~/env.groovy" ssh-rsa xxx
な感じで
#!/usr/bin/env groovy System.env.each { println it }
を実行してみる。結果はこんなん。
$ ssh groovy@host hogehoge SHELL=/bin/bash SHLVL=1 JAVA_HOME=/usr/lib/jvm/java-6-openjdk/jre PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games SSH_CLIENT=192.168.65.201 61219 22 MAIL=/var/mail/groovy XDG_SESSION_COOKIE=dfcaf79689d1bcd60839098c00000003-1322252721.876800-443142306 USER=groovy PWD=/home/groovy HOME=/home/groovy LOGNAME=groovy SSH_ORIGINAL_COMMAND=hogehoge _=/home/groovy/env.groovy SSH_CONNECTION=192.168.65.201 61219 192.168.65.205 22 LD_LIBRARY_PATH=/usr/lib/jvm/java-6-openjdk/jre/lib/i386/client:/usr/lib/jvm/java-6-openjdk/jre/lib/i386:/usr/lib/jvm/java-6-openjdk/jre/../lib/i386 LANG=en_US.UTF-8
SSH_ORIGINAL_COMMANDってとこに色々引数の情報とか入るようで。