お世話になります。また早々の質問となってしまいますが、宜しくお願い致します。
現在、SSHからのRSA認証を何とか行いたいと考えています。
他サイトの解説を読む限り、それほど難しく無いと考えていたのですが、完全に詰まってしまいました。
クライアント側で
~/.ssh/id_rsa.pub
を造り、
サーバー側に
~/.ssh/authorized_keys
として配置しました。
他サイトの注意事項として、
0,パスフレーズを確認
1,/.ssh/のパーミッションを700
2,/.ssh/以下のファイルのパーミッションを600
3,ssh_configをRSAAuthenticationとPubkeyAuthenticationをyesに。
4,それでまだ繋がらないならauthorized_keysのホスト部分をIPにしてみる。
以上の点を確認しました。しかし、未だ繋がりません。
また、見真似で、
ssh -vvv ***.***
を実行し、以下の結果が出ました。
OpenSSH_3.9p1, OpenSSL 0.9.7a Feb 19 2003
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to hoge.jp [***.***.***.***] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/.ssh/identity type -1
debug1: identity file /root/.ssh/id_rsa type -1
debug1: identity file /root/.ssh/id_dsa type -1
ssh_exchange_identification: Connection closed by remote host
これを見ると、RSAという言葉が出ていません。
これは、RSAが有効になっていない、ということなのでしょうか。
質問が2個になってしまいますが、
1)現状の作業で繋がらない理由
2)-vvv のチェックの結果で、RSAが表示されない理由
について、もしご教授いただければ幸いです。
何卒よろしくお願い致します。
クライアントに秘密鍵が無いからでは?
/root/.ssh/id_rsa
かな。
AuthorizedKeysFile %h/.ssh/authorized_keys
もサーバのsshd_configにあります?
SSHの定義ファイルも載せてくれるといいかも。
ちなみに、サーバはdebian etchでクライアントはcygwinだと
こんなんで、できました。
[Cygwin .ssh]$ ssh -v foge@fogefoge
OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
debug1: Connecting to ********
debug1: Connection established.
debug1: identity file /home/root/.ssh/identity type -1
debug1: identity file /home/root/.ssh/id_rsa type 1
debug1: identity file /home/root/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.3p2 Debian-9
debug1: match: OpenSSH_4.3p2 Debian-9 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.6
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host '*********' is known and matches the RSA host key.
debug1: Found key in /home/root/.ssh/known_hosts:2
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/root/.ssh/identity
debug1: Offering public key: /home/root/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
サーバの設定はこれです(一部)。
PasswordAuthentication no #パスワードによるログイン拒否
RSAAuthentication yes #RSAの公開鍵認証を有効にする
PubkeyAuthentication yes #公開鍵を使用する
AuthorizedKeysFile %h/.ssh/authorized_keys #認証鍵の設置場所
IgnoreRhosts yes #.rhostsを無効
RhostsRSAAuthentication no #/etc/ssh_known_hostsを無効
HostbasedAuthentication no #ホスト認証を無効
ChallengeResponseAuthentication no #チャレンジレスポンスを無効
UsePAM no #PAMを無効
> 他サイトの解説を読む限り、それほど難しく無いと考えていたのですが、完全に詰まってしまいました。
と、おやじも思います。でも、環境が違うので必ずしもそうではないので結構躓きます。そのコンテンツのサイトにはない障壁が、自分のサーバにはあることが結構あるからです。
これも典型的な例ではないでしょうか?
> クライアント側で
> ~/.ssh/id_rsa.pub
> を造り、
> サーバー側に
> ~/.ssh/authorized_keys
> として配置しました。
>
> 他サイトの注意事項として、
> 0,パスフレーズを確認
> 1,/.ssh/のパーミッションを700
> 2,/.ssh/以下のファイルのパーミッションを600
> 3,ssh_configをRSAAuthenticationとPubkeyAuthenticationをyesに。
本件問題とは直接関係ないですが、これは単なる記述ミス(誤:ssh_config 正:sshd_config)ですよね・・。
> 4,それでまだ繋がらないならauthorized_keysのホスト部分をIPにしてみる。
>
> 以上の点を確認しました。しかし、未だ繋がりません。
> また、見真似で、
> ssh -vvv ***.***
> を実行し、以下の結果が出ました。
>
> OpenSSH_3.9p1, OpenSSL 0.9.7a Feb 19 2003
> debug1: Reading configuration data /etc/ssh/ssh_config
> debug1: Applying options for *
> debug2: ssh_connect: needpriv 0
> debug1: Connecting to hoge.jp [***.***.***.***] port 22.
> debug1: Connection established.
> debug1: permanently_set_uid: 0/0
> debug1: identity file /root/.ssh/identity type -1
> debug1: identity file /root/.ssh/id_rsa type -1
> debug1: identity file /root/.ssh/id_dsa type -1
> ssh_exchange_identification: Connection closed by remote host
>
> これを見ると、RSAという言葉が出ていません。
> これは、RSAが有効になっていない、ということなのでしょうか。
> 質問が2個になってしまいますが、
>
> 1)現状の作業で繋がらない理由
これは、sshそのものの設定問題ではないと思います。設定がどうであれsshとつながれば、もっと先までログがでます。これは、sshでつなごうとした時に不都合が生じてsshd?が切ってきたものです。可能性としてはtcp_wrappersがあるので、hosts.allow/host.denyをチェックしてみると幸せかもしれません。
> 2)-vvv のチェックの結果で、RSAが表示されない理由
上記の状態なので、それ以前の話です。
sshd_configの設定は、わらびさんの例で問題ないと思います。
^^^^