sshの鍵認証方式は、あちこちに書かれているように
- クライアント側で鍵作成(すでにあればスキップ)
1 |
ssh-keygen -t dsa |
- サーバへ鍵を転送
1 |
ssh-copy-id -i id_dsa.pub user@hostname |
でよいのだが、openssh のバージョンを上げたらなぜかパスワードを要求するようになった。仕方がないので -v オプション付きで接続して見てみたら
1 |
debug1: send_pubkey_test: no mutual signature algorithm |
というメッセージに遭遇。ググったら、どうも新しいopensshではdsa鍵をデフォルトで無効化するらしい。仕方がないのでアドホックに対策。クライアント側の .ssh/config に以下を追加:
1 2 |
Host hostname PubkeyAcceptedKeyTypes +ssh-dss |
これで復旧。根本的にはサーバのopensshのバージョンが上がるのを待つしかないのだろう。合掌。