aswww log

エンジニアの技術録。アプリとかウェブとか

Ubuntuから公開鍵認証でssh接続を試みる[解決]

Ubuntuからターミナルで公開鍵認証方式でしか接続できないレンタルサーバssh接続を試みた。結果うまくいかなかったが、備忘録的に途中経過をまとめとく。
★2013/08/09追記 解決しました。


◆まずはレンタルサーバにて公開鍵認証用鍵ペアの生成
 使用するレンタルサーバのマニュアルを見てみる。SSH設定の項目に以下のとおり書いてあった。

本サーバのSSH接続では「公開鍵認証」にのみ対応しています。
(※パスワード認証には対応していません。)
そのため、SSHで接続する為にはサーバー上に公開鍵の登録を行う必要があります。
やり方としてはサーバーで公開鍵認証用鍵ペアを生成し秘密鍵をダウンロードしてする方法と、お客様の環境にて生成の公開鍵を登録していただく方法がありますので、以下をご参考の上、生成、または登録を行ってください。
(※登録が行える公開鍵は、「OpenSSH形式」のみです。)

というわけで手軽でつまづかなそうな「サーバーで公開鍵認証用鍵ペアを生成し秘密鍵をダウンロード」で接続することに。
サーバパネルの[SSH設定]項目に[公開鍵認証用鍵ペアの生成]がフォームがあるのでそこにパスフレーズを入力して登録。するとサーバ上の公開鍵が更新され、それに対する秘密鍵がダウンロードできるようになった。

ダウンロードした秘密鍵をローカルUbuntuの~/.ssh/配下に配置。以下を実行して接続を試みる。

ssh ユーザ名@サーバアドレス -p ポート番号 -i ~/.ssh/秘密鍵ファイル名

すると以下のエラーが出力された。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0664 for '/home/ユーザ名/.ssh/秘密鍵ファイル名' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /home/ユーザ名/.ssh/秘密鍵ファイル名
Permission denied (publickey,gssapi-with-mic).


Permissionがうんぬん。調べて見ると秘密鍵ファイルのPermissionが0600じゃないといけないことが判明。変更し、再度ssh接続を試行。

sudo chmod 0600 ./.ssh/秘密鍵ファイル名

ssh ユーザ名@サーバアドレス -p ポート番号 -i ~/.ssh/秘密鍵ファイル名

するとパスワードが聞かれるものの、またエラーが出力された。

passphrase for key '/home/ユーザ名/.ssh/eir001.key': 
Permission denied (publickey,gssapi-with-mic).

また調べて今度はsshコマンドに-vオプションをつけて実行。デバッグ情報が見れるもERRORの文字もなく、一旦ここでタイムアップ!ちなみに-vvvとかすると更に詳細なデバッグ情報が見れるらしい。明日以降トライしよう。



★2013/08/09追記
今日になって改めて接続を試みたらなんとユーザー名が間違っているだけで普通にssh接続できました!orz
ちなみに調べているうちにはてなの質問ページでssh接続が出来なかった時のための対処法が箇条書きでわかりやすくまとめられていて今後役に立ちそうなのでそれをここで引用してのせさせていただきます。

人力はてな ーSSHの設定方法の質問ですーの回答より
http://q.hatena.ne.jp/1149079199

・クライアント側の/etc/ssh/ssh_config、~/.ssh/configでサーバBに対する設定、
 ~/.ssh/id_rsaの鍵が使われているかどうか
・サーバ側の/etc/ssh/sshd_configで公開鍵認証が有効になっているかどうか、
 ~/.ssh/authorized_keysでクライアント側の~/.ssh/id_rsaに対応する公開鍵が入っているかどうか
・サーバ側の~/.ssh/authorized_keysのパーミッションが600になっているかどうか
・サーバ側の~/.sshのパーミッションが700になっているかどうか
・ssh -vでつないでうまくいっているサーバへの接続と失敗するサーバへの接続を比較する。
・ssh -vでわからなければssh -vvやssh -vvvなどと-vを増やして試してみる。


参考:
・MacでSSH公開鍵・秘密鍵ファイルをコピーして使ったら警告がでた
http://blog.ruedap.com/2011/04/04/mac-ssh-key-copy-error
sshでPermission denied (publickey,gssapi-with-mic).のエラーが出た時の対処方法
http://d.hatena.ne.jp/puchiban/20111228/1325069112