QA@IT

sftp 認証鍵で接続が出来ません。

6134 PV

sftpでどうしても認証鍵での接続が出来ません。

サーバー:windows7にcygwinをインストールしました。
クライアント:WinSCPを別PCにインストールしました。

パスワードでの接続、ファイル転送は出来ました。
サーバー端末とクライアント端末を直接LANで結び、接続確認しています。

WinSCPからサーバーへ認証鍵で接続しようとすると、
Server unexpectedly closed network connectionと表示されます。
windowsコマンドからsftp接続をデバッグで動かすと、パスコードを聞いてくるまで進みますが、
パスコードを入れても、何度も聞いてきます。最後にはパスワードを聞いてきます。

パーミッションは以下のようになっています。
chmod 700 .ssh
chmod 600 .ssh/authorized_keys

三日間悩んでお手上げ状態です。
どなたかわかる方、教えていただけないでしょうか。

1.png

2.png

  • WinSCPでパスワードは空にしていますか? パスフレーズの入力は求められますか? -
  • あ、ごめんなさい、入れても何度も聞いてきますと書いてありますね。念のため、これは別途でてきてるパスフレーズ用のダイアログのことですよね? -
  • 鍵の作成はどのように行いましたか?cygwin上でssh-user-configからssh-keygenでしょうか? -
  • お返事ありがとうございます。
    WinSCPで公開鍵、秘密鍵を作成し、公開鍵をcygwinのhome/ユーザー/の下に置き、
    ssh-keygen -i -f id_rsa.pub >> ~/.ssh/authorized_keysにしています。
    その後、chmod 600 authorized_keysにしています。
    -
  • すみません。正確にはputtygenで作成しています。 -

回答

サーバ側のホームディレクトリのパーミッションは大丈夫ですか?

man sshd_configによると

StrictModes
Specifies whether sshd should check file modes and ownership of
the user’s files and home directory before accepting login. This
is normally desirable because novices sometimes accidentally
leave their directory or files world-writable. The default is
“yes”.

だそうです。ホームディレクトリについても他人によるwriteは禁止しなければならないようです。

試しにホームディレクトリで

chmod 702 .

とやったら、WinSCPから公開鍵認証はできなくなり、パスワードをきかれました。そのときのsshdのログに

sshd[2737]: Authentication refused: bad ownership or modes for directory /home/user_name

と出ていました。ホームディレクトリのパーミッションを

chmod 700 .

と元に戻したら、再び公開鍵認証できるようになりました。

もしかしたらこれが関係するかもしれませんね。

編集 履歴 (2)
ウォッチ

この質問への回答やコメントをメールでお知らせします。