質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.61%

  • CentOS

    2635questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

【CentOS7】ssh接続,秘密・公開鍵でのアクセスができない

解決済

回答 3

投稿

  • 評価
  • クリップ 3
  • VIEW 33K+

nnahito

score 1689

以前に【Cent OS7】公開鍵,秘密鍵認証で接続できないで質問をさせていただきましたが,
忙しく,間が空いてしまったため再度,変更点を含めご質問させてください.


SELinuxをdisabledにし,FireWallをきってもsshでCentOS7のサーバに接続できません.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
というエラーが出ます.(接続が弾かれている?)

ssh.allow,ssh.denyは両方共初期状態(空っぽ)になっています.

また,他のサーバPC(MacOS)にはssh接続ができるため,ポートの問題ではなさそうです.


以上で,現段階での簡単な設定の流れとなっています.
何かご存じの方がいらっしゃいましたら,ご教示いただければ幸いです.
よろしくお願いいたします.
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+4

前回はタイムアウトでしたが、Permission denied になったということはルーターを経由して CentOS 7 の sshd までは接続できています。他の方からもご指摘がありますが、おそらく、鍵の問題だと思います。

切り分けとして、一時的にパスワード認証を有効にして root パスワードでログインできるか試したいところですが、CentOS 7 がインターネットからアクセスできるネットワークにあるのでしたら、やめておいた方がいいでしょう。

確認ですが、
CentOS 7 の /root/.ssh/authorized_keys に登録している公開鍵と対になっている秘密鍵(id_rsa)は sshクライアント側に存在するのですよね? その秘密鍵を sshコマンドの -i オプションで指定してもログインできませんでしょうか。
$ ssh -i id_rsa root@(CentOS 7 の IPアドレス)
$ ssh -v -i id_rsa root@(CentOS 7 の IPアドレス)     
    (-v でデバッグメッセージを表示)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/09/29 15:57

    ご回答有り難うございます.

    >CentOS 7 の /root/.ssh/authorized_keys に登録している公開鍵と対になっている秘密鍵(id_rsa)は sshクライアント側に存在するのですよね?
    はい,私のMacbookに秘密鍵,CentOS7に/root/.ssh/authorized_keysが存在しています.(なぜ「authorized_keys」と名前を変更しないといけないのかは未だ疑問ですが…^^;)

    ssh -i id_rsa root@(CentOS 7 の IPアドレス)
    も,
    ssh -i id_rsa USER_ID@(CentOS 7 の IPアドレス)
    も,「Permission denied (publickey,gssapi-keyex,gssapi-with-mic).」が表示されます.

    ご教示いただきました,-vオプションでは以下のようになっています.

    $ ssh -v -i ~/.ssh/id_rsa root@IP_ADDRESS
    OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
    debug1: Reading configuration data /etc/ssh_config
    debug1: /etc/ssh_config line 20: Applying options for *
    debug1: Connecting to IP_ADDRESS [IP_ADDRESS] port 22.
    debug1: Connection established.
    debug1: identity file /Users/USER_ID/.ssh/id_rsa type -1
    debug1: identity file /Users/USER_ID/.ssh/id_rsa-cert type -1
    debug1: Enabling compatibility mode for protocol 2.0
    debug1: Local version string SSH-2.0-OpenSSH_6.2
    debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1
    debug1: match: OpenSSH_6.6.1 pat OpenSSH*
    debug1: SSH2_MSG_KEXINIT sent
    debug1: SSH2_MSG_KEXINIT received
    debug1: kex: server->client aes128-ctr hmac-md5-etm@openssh.com none
    debug1: kex: client->server aes128-ctr hmac-md5-etm@openssh.com 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: Server host key: RSA 93:34:7b:c7:a2:99:ed:3d:24:4c:be:3d:a0:e5:a5:27
    debug1: Host 'IP_ADDRESS' is known and matches the RSA host key.
    debug1: Found key in /Users/USER_ID/.ssh/known_hosts:10
    debug1: ssh_rsa_verify: signature correct
    debug1: SSH2_MSG_NEWKEYS sent
    debug1: expecting SSH2_MSG_NEWKEYS
    debug1: SSH2_MSG_NEWKEYS received
    debug1: Roaming not allowed by server
    debug1: SSH2_MSG_SERVICE_REQUEST sent
    debug1: SSH2_MSG_SERVICE_ACCEPT received
    debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic
    debug1: Next authentication method: publickey
    debug1: Trying private key: /Users/USER_ID/.ssh/id_rsa
    debug1: read PEM private key done: type RSA
    debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic
    debug1: No more authentication methods to try.
    Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

    これを見ても,慣れていないので読み方がわかりません……
    調べながら読んでいますが,いまいちまだピンと来ないので……
    よろしければ,ポイントと合わせて教えていただけないでしょうか?
    よろしくお願いいたします.

    キャンセル

  • 2015/09/29 17:28 編集

    情報ありがとうございます。

    > debug1: Next authentication method: publickey
    > debug1: Trying private key: /Users/USER_ID/.ssh/id_rsa
    > debug1: read PEM private key done: type RSA

    公開鍵認証が有効で、秘密鍵は読み込めていますが、認証に失敗しています。
    秘密鍵と公開鍵が合っていないか、CentOS 7 側で authorized_keys を見ていないのか。

    sshクライアント側で id_rsa から公開鍵を再作成して、CentOS 7 側の /root/.ssh/authorized_keys に含まれているかどうか確認してください。

    [client]$ ssh-keygen -y -f ~/.ssh/id_rsa (標準出力に公開鍵が表示されます)

    また、CentOS 7 の /etc/ssh/sshd_config の設定を見せてもらえないでしょうか。

    [centos7]# grep -v -E '(^$|^#)' /etc/ssh/sshd_config

    キャンセル

  • 2015/09/30 15:54

    コメントありがとうございます。

    >sshクライアント側で id_rsa から公開鍵を再作成して、CentOS 7 側の /root/.ssh/authorized_keys に含まれているかどうか確認してください。
    こちらは。。。
    >[client]$ ssh-keygen -y -f ~/.ssh/id_rsa
    この内容をペーストすればよろしいでしょうか?


    >また、CentOS 7 の /etc/ssh/sshd_config の設定を見せてもらえないでしょうか
    以下になります。

    # grep -v -E '(^$|^#)' /etc/ssh/sshd_config
    HostKey /etc/ssh/ssh_host_rsa_key
    HostKey /etc/ssh/ssh_host_ecdsa_key
    HostKey /etc/ssh/ssh_host_ed25519_key
    SyslogFacility AUTHPRIV
    AuthorizedKeysFile .ssh/authorized_keys
    PermitEmptyPasswords no
    PasswordAuthentication no
    ChallengeResponseAuthentication no
    GSSAPIAuthentication yes
    GSSAPICleanupCredentials no
    UsePAM yes
    X11Forwarding yes
    UsePrivilegeSeparation sandbox # Default for new installations.
    AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
    AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
    AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
    AcceptEnv XMODIFIERS
    Subsystem sftp /usr/libexec/openssh/sftp-server

    よろしくお願い致します

    キャンセル

  • 2015/09/30 16:31

    sshd_config は「AuthorizedKeysFile .ssh/authorized_keys」となっていますので、問題ないと思います。
    sshクライアント側で "ssh-keygen -y -f ~/.ssh/id_rsa" で出力される「ssh-rsa(空白)文字列」が CentOS 7 側の /root/.ssh/authorized_keys に含まれているかどうか確認してください。

    キャンセル

  • 2015/09/30 16:45

    ご回答有り難うございます.

    クライアント側のid_rsaファイルの中身と,
    authorized_keysファイルの中身は完全一致しております.
    ただし,authorized_keysファイルの中身には,id_rsaファイルの中にはない,
    root@PC名
    という物が末端に追記されていました.
    これは正解なのでしょうか?

    よろしくお願いいたします.

    キャンセル

  • 2015/09/30 17:38

    最後の「root@PC名」はコメントなので、無視して結構です。「ssh-rsa(空白)文字列」が一致していればログインできるはずですが ... わかりません。

    authorized_keys には複数の公開鍵を登録できますので、sshクライアント側で "ssh-keygen -y -f ~/.ssh/id_rsa" で出力される文字列(1行)を CentOS 7 側の /root/.ssh/authorized_keys に追加するとどうでしょうか。
    あるいは、sshクライアント側で "ssh-keygen -t rsa" で鍵ペアを再作成して、id_rsa.pub の内容を CentOS 7 側の /root/.ssh/authorized_keys に追加するか。

    キャンセル

  • 2015/10/01 16:08

    ご回答有り難うございます.

    >sshクライアント側で "ssh-keygen -t rsa" で鍵ペアを再作成して、id_rsa.pub の内容を CentOS 7 側の /root/.ssh/authorized_keys に追加
    こちらをやってみましたが,同じくエラーが発生しました.

    一応,私の鍵の作成方法が正しいかを見ていただきたいと思い,以下に記載させていただきます.
    お手数をお掛けしますが,ご確認をお願いしてもよろしいでしょうか.

    (0)定義
     ̄ ̄ ̄ ̄ ̄ ̄ ̄
    サーバ(側):CentOS7で稼働しているサーバを指しています.
    クライアント:手元のMac0Sを指します.こちらからサーバへsshないし鍵接続を試みています.

    ※コマンドはroot権限を与えた端末ソフト(# su -)で行っております.


    (1)サーバ側で鍵を作成
     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    以下のコマンドにより,サーバ側で公開鍵と秘密鍵を作成しました.
    # ssh-keygen -t rsa
    それにより,
    /root/.ssh/に,「id_rsa」と「id_rsa.pub」が作成されます.


    (2)id_rsa.pubの名称変更と,権限変更
     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    id_rsa.pub を authorized_keys へ名称を変更し,
    # chown (サーバの自分のユーザ名) ~/.ssh/authorized_keys
    を実行しました.

    (3)id_rsaをクライアントへ移動
     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    USBを使い,id_rsaをクライアント(Mac)の.sshフォルダに移動しました.


    (4)接続
     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    クライアントのターミナルで,
    $ ssh -i id_rsa root@サーバIPアドレス

    $ ssh -i id_rsa サーバの自分のユーザ名@サーバIPアドレス
    を実行しましたが,
    Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
    が表示されます.

    流れは以上です.
    何か間違っている部分などありますでしょうか?

    キャンセル

  • 2015/10/01 16:32

    (2) の chown ですが、クライアント側のユーザーとは関係なく、root でログインするのであれば、/root/.ssh/authorized_keys が存在し、オーナーは root である必要があります。一般ユーザーでログインするのであれば (ユーザーの$HOME)/.ssh/authorized_keys が存在し、オーナーはそのユーザーである必要があります。

    また、通常は ssh-keygen はクライアントで実行し、公開鍵(id_rsa.pub)をログイン先のユーザーの$HOME/.ssh/authorized_keys に追加します。

    キャンセル

  • 2015/10/01 16:35

    authorized_keys のオーナーが違っていれば、/var/log/secure に 「Authentication refused: bad ownership or modes for file /root/.ssh/authorized_keys」が記録されます。

    キャンセル

  • 2015/10/01 21:27

    ご回答有り難うございます。
    無事解決いたしました!!


    キーとなったのは、TaichiYanagiya様の
    >一般ユーザーでログインするのであれば (ユーザーの$HOME)/.ssh/authorized_keys が存在し、オーナーはそのユーザーである必要があります。
    です。


    初心者の過ちとして、公開鍵、秘密鍵をroot権限(# su -)でずっと作成していたことが問題です。
    端末ソフトで、ルート権限にログイン「せず」鍵を作成し、接続したところ見事アクセスすることができました。
    なお、ルート権限には外部からはログインできない状態となっているため、全て弾かれていた模様です。(そりゃそうだ…)

    また、ホームディレクトリにpublic_htmlフォルダを作成するために、権限を777にしていたのも問題だったようで、権限を755にすると無事接続できました。

    無知な私にここまで付き合っていただきありがとうございます。
    これからも勉強し、精進させていただきたいと思います。

    ありがとうございました。

    キャンセル

0

sshの鍵認証方式では、authorized_keys だけでなく、ホームディレクトリ.sshディレクトリ秘密鍵等のパーミッションが適切でないと、セキュリティ上の理由で認証NGになります。
たとえば、下記ページをご参照ください。
sshの公開鍵認証がうまく行われない時の原因3個とその対処法

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/09/29 15:51

    ご回答有り難うございます.
    ご紹介いただいたサイト通りの処理を行ったのですが,できませんでした……
    `chmod go-w ~/`は,何を表しているのでしょうか…?

    キャンセル

-1

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/09/29 15:02

    所有者を自身に変えても,同様のエラー(Permission denied (publickey,gssapi-keyex,gssapi-with-mic).)が出ました.

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    CentOS 7 不正アクセス対策

    サーバ管理初心者です。 昨日、勉強をはじめました。 大学の研究で、どうしてもサーバが必要になり、 専用のマシンを用意しCentOS7を入れて、サーバ(Apache?)の立ち上げま

  • 解決済

    【Cent OS7】公開鍵,秘密鍵認証で接続できない

    ・CentOS 7 不正アクセス対策 ・【Cent OS7】PHPでfwriteができない ・【Cent OS7】ユーザディレクトリにWebサイトの公開フォルダを作りたい で,皆様

  • 受付中

    CentOsのがCUIからGUIに切り替えられません。

    要望 ネットワーク設定がIpアドレスが取得できないのでGUI環境にしてほしい 問題 IPアドレスがわからないため、デスクトップからアクセスできない。 サーバーPCが離れ

  • 解決済

    公開鍵を使用しSSHログインしたい。

    行った手順 セキリティの為、公開鍵でログインする設定を行いました。 設定手順としてはクライアントで秘密鍵と公開鍵を生成し、公開鍵をサーバーの rootディレクトリにアップロー

  • 解決済

    CentOS7.2のfirewallの設定方法について

    前提・実現したいこと ApacheをインストールしたCentOS7.2の環境で、以下のような設定を行いたいです。 ・sshはアドレスA、Bから可能 ・HTTP接続はアドレ

  • 解決済

    MACアドレスによるsshアクセス権限

    Centos7 のサーバで、接続元のPCのMACアドレスによるsshアクセス権限は可能なのでしょうか? 単純な質問で申し訳ありませんが、その場合の設定方法をご教授いただけると助かり

  • 解決済

    外部通信用のNAT設定について

    あるクラウド環境でサーバ運用しています 今回、WEBサーバから決済用で通信するIPアドレスを1つに固定するために 決済サーバと通信する専用のサーバを作成することになりました そこで

  • 解決済

    柔軟にカスタマイズできるftpdは?

    CentOS - CentOS7&Vsftpdでweb更新専用ユーザーを作りたい【再】(110753)|teratailの続きになります。 telnet接続できるできないと、f

同じタグがついた質問を見る

  • CentOS

    2635questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。