Fedora 23にアップグレードした後、SSHでパスワード不要(公開鍵ベース)の認証は機能しなくなりました。あるホストにSSHで接続しようとすると、リモートホストで私のパスワードの入力を促します。 SSH秘密鍵を使うことができません。 Fedora 22ではすべてうまくいった。
私の公開鍵はDSA鍵(~/.ssh/id_dsa.pub
)です。私はOpenSSH 7.1(openssh-7.1p1-5.fc23.x86_64
)を使っています。
パスワードなしの認証を再度正しく機能させるにはどうすればよいですか。
これはOpenSSH 7.0へのアップグレードの結果です。 OpenSSH 7.0の リリースノートに と書かれているように、「ssh-dssホストとユーザーキーのサポートは実行時にデフォルトで無効になっています」。
解決策は、すべてのクライアントマシン(SSHクライアントを実行しているすべてのマシン)の~/.ssh/config
に次の行を追加することです。
PubkeyAcceptedKeyTypes=+ssh-dss
サーバーがOpenSSH 7.0以降を使用している場合は、各サーバーマシンの/etc/ssh/sshd_config
にもを追加する必要があります。
あるいは、まったく新しいSSHキーを生成して、これをログインしたいすべてのサーバーのauthorized_keysファイルに追加することもできます。 互換性の問題を避けるために、RSA を使用することをお勧めします。どうやら gnome-keyring-daemonは自動的に ECDSAタイプのSSH鍵を拾い上げないので、私はECDSAをお勧めしません。
社説:OpenSSHの人々はなぜDSAキーを無効にしたのですか?知りません。確認できる範囲では、DSAキーのセキュリティに問題はありません(ssh-dss)。 OpenSSH Webページ はssh-dssは弱いと主張していますが、私の知る限りでは1024ビットのssh-dssは1024よりも弱いものではありません。ビットRSAキー、および1024ビットRSAキーは無効になりません。
これを許可するために.ssh/config
ファイルを編集することはそれほど良くないという考えのようですが、私はお勧めします
最近のツールを使用して、新しいキーを作成してください。
それから新しい公開鍵を(クリップボードに)コピーします。
古いキーを使用して最後にログに記録します。
ssh -i .ssh/id_dsa.pub -o PubkeyAcceptedKeyTypes=+ssh-dss user@Host
次に、新しいpubkeyを追加してログアウトし、@Host
のauthorized_keys
ファイルをアップグレードします。
cat >>.ssh/authorized_keys
pasteそれから Ctrl+D
デフォルトの構文を使用して新しいキーでログインします。
ssh user@Host
それから@Host
のauthorized_keys
ファイルを削除 you old pubkeyでアップグレードします(私の古いpubkeyがこのファイルのsed -e 1d -i .ssh/authorized_keys
行にあるときは1
を使います)。
可能であれば、SSHサーバをアップグレードすることをお勧めします。
古い鍵が機能しなくなったかどうかをテストします。
ssh -i .ssh/id_dsa.pub -o PubkeyAcceptedKeyTypes=+ssh-dss user@Host
...
Permission denied...
これは機能しないはずです;-)
すべて問題ないかどうかを再確認することもできます。
ssh user@Host uptime