読者です 読者をやめる 読者になる 読者になる

authorized_keysを放り込むだけではなぜダメだったのか未だに不明

ssh-copy-id

今日はsshの公開鍵を配るのに嵌り込んだので、メモしとく。 LDAPとか高級な環境はないので、力技。

やりたかったこと:新サーバに既存サーバが公開鍵認証で入れるようにする

下記手順を想定してたんだけど、4でハッピーになれなかった。

  1. 新サーバで鍵を作る
  2. 新サーバで作った公開鍵を既存サーバに取り寄せて、authorized_keysに追記
  3. authorized_keysを各サーバにばら撒く
  4. アクセスできてハッピー

パーミッションが悪かった(ちゃんと認証できてるやつとできてないやつで差はなかったんだけど・・・)のか、 サーバの機嫌が悪かったのか、僕の運が悪かったのかはわからないけど、ともかくも公開鍵認証できなかった わけだ。こうして僕の1時間は消し飛んだと、そういうわけですね。

仕方なくやったこと:ssh-copy-idで鍵を交換してからばら撒く

こんな手順になった。改めて見なおしてみるとすごく無駄に溢れてるなあ・・・

  1. 新サーバで鍵を作る
  2. ssh-copy-idで既存サーバの1つと鍵交換する
  3. 既存サーバのauthorized_keysをばら撒く
  4. アクセスできるようになってハッピー

コマンドログを思い出しながらなので、間違いがあるかもしれない。 登場人物は新サーバと既存サーバ。

# まずは鍵作成
bisco@新サーバ $ ssh-keygen -t dsa -b 1024

# 既存サーバのログインパスを入力して、新サーバの公開鍵を既存サーバに放り込む
bisco@新サーバ $ ssh-copy-id -i ~/.ssh/id_dsa.pub bisco@既存サーバ

# 既存サーバのauthorized_keysをひっぱってくる
bisco@新サーバ $ scp bisco@既存サーバ:~/.ssh/authorized_keys ~/.ssh/authorized_keys

# 既存サーバの公開鍵を新サーバに放り込む
bisco@既存サーバ $ ssh-copy-id -i ~/.ssh/id_dsa.pub bisco@新サーバ

# 新サーバのauthorized_keysをひっぱってくる
bisco@既存サーバ $ scp bisco@新サーバ:~/.ssh/authorized_keys ~/.ssh/authorized_keys

# 既存サーバのauthorized_keysを他のサーバにばら撒く
bisco@既存サーバ $ ./baramaki.sh
これやって思ったこと
  • そもそも何でダメだったのか、不明のままで気持ち悪い。これのおかしなところは、1個の既存サーバと 交換しただけであとは全部OKになったところ。
  • screen+bashだったせいで、コマンドログを取りそこねてしまいへこんだ。やはりzshにすべきだった。
  • サーバが増えるのであれば、もっと簡単にユーザ管理できるような仕組みをつくるべきかもしれない。 だけど、LDAPサーバをたてるほど余力はないし、やる気もない。なんかこう、簡易的に公開鍵をばら撒く仕組みはないものかなあ。