公開鍵を受け取って、authorized_keys
に設定しようとした時、putty形式で鍵が生成されている場合、そのまま使えません。
下記のコマンドで変換できるのですが、複数の鍵を変換する場合は面倒です。
$ ssh-keygen -i -f iputty.pub > openssh.pub
どこかのディレクトリにまとめて入れたら全部変換してくれる。みたいなものがあると便利だなと思ったので作ってみました。
#!/bin/sh
KEYSDIR=(変換対象鍵を配置するディレクトリ)
mkdir ${KEYSDIR}/gen 2>/dev/null
mkdir ${KEYSDIR}/raw 2>/dev/null
mkdir ${KEYSDIR}/openssh 2>/dev/null
for file in `find $KEYSDIR -maxdepth 1 -name '*.pub' -type f`; do
FNAME_EXT="${file##*/}"
if [ -d file ]; then
continue;
fi
FNAME="${FNAME_EXT%.*}"
ssh-keygen -i -f $KEYSDIR/${FNAME}.pub > $KEYSDIR/gen/${FNAME}_gen.pub
cp $KEYSDIR/gen/${FNAME}_gen.pub $KEYSDIR/openssh/${FNAME}.pub
mv $KEYSDIR/${FNAME}.pub $KEYSDIR/raw/${FNAME}.pub
done
rm -rf $KEYSDIR/gen
KEYSDIR
にはputtyの公開鍵を入れておくディレクトリパスを指定します。
KEYSDIR=(変換対象鍵を配置するディレクトリ)
スクリプトを実行すると、puttyの公開鍵を入れたディレクトリ内にopenssh
とraw
というディレクトリが出来ます。openssh
には変換後の公開鍵、raw
には変換前の公開鍵が格納されています。