web-dev-qa-db-ja.com

PuTTYからDebianへのSSH "authorized_keysは通常のファイルではありません"エラー

PuTTYを使用するWindows 7コンピューターから、SSH RSAキー認証を使用して新しく構成されたDebian Squeezeサーバーに接続できません。

SSHをデバッグモードで実行すると、次のエラーが表示されます:User myuser authorized keys /home/myuser/.ssh/authorized_keys is not a regular file


これまでに行ったこと:

  1. ssh-keygen -t rsa
  2. パスフレーズを設定します。
  3. Id_rsa.pubファイルを~/.ssh/authorized_keysにコピーしました
  4. Id_rsaをWindows 7マシンのテキストファイルにコピーした
  5. 鍵をputtygen.exeにインポートし、.ppk秘密鍵ファイルに変換しました。
  6. その秘密鍵ファイルをpageant.exeにロードし、[接続]-> [SSH]-> [認証認証]メソッドで[ページェントを使用して認証を試行する]がオンになっていることを確認しました。
  7. プロファイルをロードしました。

OpenSSH.orgからのFAQ に基づいて、権限を次のように変更しました。

drwxr-xr-x 3 root   root   4096 Aug 13 14:16 /home
drwxr-xr-x 7 myuser myuser 4096 Aug 17 12:55 /home/myuser
drwx------ 3 myuser myuser 4096 Aug 17 13:24 /home/myuser/.ssh
drw------- 2 myuser myuser 4.0K Aug 17 13:23 /home/myuser/.ssh/authorized_keys
-rw------- 1 myuser myuser  396 Aug 17 13:17 /home/myuser/.ssh/authorized_keys/id_rsa.pub

私はsshでデバッグモードを開始し、以下を取得しました。

debug1: userauth-request for user myuser service ssh-connection method publickey
debug1: attempt 1 failures 0
debug1: test whether pkalg/pkblob are acceptable
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: temporarily_use_uid: 1000/1000 (e=0/0)
debug1: trying public key file /home/myuser/.ssh/authorized_keys
User myuser authorized keys /home/myuser/.ssh/authorized_keys is not a regular file
debug1: restore_uid: 0/0
Failed publickey for myuser from 10.1.1.1 port 50710 ssh2

他に何をチェックするか迷っています。 SELinuxなどをセットアップしていません。どんなアイデアでも大歓迎です。

9
tacotuesday

問題は:

User myuser authorized keys /home/myuser/.ssh/authorized_keys is not a regular file

authorized_keysという名前のディレクトリを作成し、すべてのキーファイルをその中に置いたようです。これが機能しない理由です。 authorized_keysは通常のファイルであることを意図しており、すべてのキーを~/.sshに配置できます。

15
Michael Hampton

主な問題は、~/.ssh/authorized_keysがディレクトリであってはならないことです。これは、公開鍵が1行ずつ追加されたテキストファイルです。

鍵は1つしかないため、~/.ssh/authorized_keys/id_rsa.pubファイルを一時的な場所に移動し、~/.ssh/authorized_keysディレクトリを削除してから、公開鍵ファイルの名前を~/.ssh/authorized_keysに変更して戻します。これで、ログインパスワードを使用せずに接続できるはずです。

7