mazeltov7のweb断片

備忘録的なテキトーなことを書きます。(技術記事はQiitaに移行しました http://qiita.com/mazeltov7 )

鍵認証でssh接続したい場合にpermission denied (publickey)出てはまった話

ssh接続するのに、鍵認証で入る、っていうのをやって、割とはまっておりました…
すでに1ユーザー(userA)では鍵認証で入ることはできていて、もう1つユーザー(userB)を作って鍵認証接続しようとするとエラーになる、という事案でした。

参考はこちら。
http://www.tooyama.org/ssh-key.html
http://www.capistranorb.com/documentation/getting-started/authentication-and-authorisation/

サーバー側でユーザーを作る。

$ adduser userB

ローカルで鍵を作る。

$ ssh-keygen -f userB_rsa -t rsa

$ ssh-add -l でssh-addに入ってる鍵を確認することができる。
$ ssh-add でssh-addに登録。この辺は特にしなくても大丈夫。

userB_rsa.pubをサーバー側(/home/userB/.ssh)に送る。

以下のアクションをuserBのユーザーでサーバーに入って行う方が良いっぽい。(userAで入ってやって詰まった感あります)

$ mkdir .ssh
$ cat userB_rsa.pub >> authorized_keys
$ chmod 700 .ssh
$ chmod 600 authorized_keys

これで鍵認証は基本的にできるはず。


これやってなぜかはまったのは、パスワードでは入れるけど、鍵で入ろうとすると、
permission denied (publickey)となってエラーになるという件。


修正を加えたところ(原因だったぽいところ)。
・.sshとauthorized_keysの所有者ユーザーと所有グループをuserBにした。
($ chown userB:UesrB .sshと $ chown userB:userB authorized_keysを行う)
・上のように、.sshとauthorized_keysの権限をそれぞれ700,600にした。
(ここも入るの必要な条件みたい)



振り返ると何でもないけど、中々時間が溶けました。
アーメン。