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

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

ただいまの
回答率

90.35%

  • CentOS

    3310questions

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

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

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,591

nnahito

score 1812

CentOS 7 不正アクセス対策
【Cent OS7】PHPでfwriteができない
【Cent OS7】ユーザディレクトリにWebサイトの公開フォルダを作りたい
で,皆様のお知恵をお借りし,なんとか目的の用途にあったサーバを建てることが出来ました.
しかし,再度不明な点が出てきましたので質問させていただきたいと思います.

公開鍵,秘密鍵を用いた外部PCからの接続ができません.

方法を御存知の方がいらっしゃいましたら,やり方,問題点,解決法を詳しくご教授いただけないでしょうか.
よろしくお願いいたします.

なお,接続にCyberduckというFTPソフトを利用しており,これにより接続を試みるとタイムアウトしているようです.
イメージ説明


以下,私が設定した設定項目を記載させていただきます.

CentOS 7 不正アクセス対策より,/etc/ssh/sshd_configの中身を,
Port 47382
PermitRootLogin no
PasswordAuthentication no

/etc/hosts.allowの中身を,
sshd : 127.0.0.1

/etc/hosts.denyの中身を,
sshd : all

と変更しました.


【Cent OS7】PHPでfwriteができない
【Cent OS7】ユーザディレクトリにWebサイトの公開フォルダを作りたいより,

/etc/selinux/configの中身を,
SELINUX=disabled

と変更しました.


Cent OSのFirewall([アプリケーション]>[諸ツール]>[ファイアウォール])は,publicの中の,
http

https

ssh
にチェックを入れています.


また,鍵については,CentOS で公開鍵暗号方式を使用した SSH ログイン設定より,
# su -
# ssh-keygen -t rsa
# mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
# chmod 600 ~/.ssh/authorized_keys
と,作成しました.

また,CentOSに公開鍵認証のSSH2で接続できない時より,
/etc/ssh/sshd_configの中身を,
PubkeyAuthentication yes
と書き換えています.


試みた動作は,PermitRootLogin noのコメントアウト(管理者権限のアカウントなので)
/etc/hosts.allowsshd : 127.0.0.1をコメントアウト
/etc/hosts.denysshd:allのコメントアウト
などです.

よろしくお願いいたします.
  • 気になる質問をクリップする

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 1

checkベストアンサー

+1

2点、変更が必要と思います。

(1) root ユーザーでログインするのですから、/etc/ssh/sshd_config で
PermitRootLogin yes
   または
PermitRootLogin without-password
とする必要があります。
変更した後、"systemctl reload sshd" で再読み込みしてください。

この時点で、localhost から root ユーザーで sftp コマンドでログインできるか確認します。
# sftp -i ~/.ssh/id_rsa root@127.0.0.1

(2) SSH/SFTP のポート番号を 47382 に変更しているので、Firewall で ssh(22) ではなく 47382 番ポートを開ける必要があります。
GUI での操作はわからないのですが、コマンドで設定する場合、以下のように設定します。
# cd /etc/firewalld/services/
# cp -p /usr/lib/firewalld/services/ssh.xml  ssh47382.xml
# sed -i 's|<short>SSH|<short>SSH47382|;s|port="22"|port="47382"|' ssh47382.xml
    (サービス名とポート番号を変更する。vi などのエディタで変更してもよい。)

# systemctl reload firewalld
# firewall-cmd --get-services
    (ssh47382 が表示されることを確認)
# firewall-cmd --add-service=ssh47382
# firewall-cmd --permanent --add-service=ssh47382
上記は新たにサービスを定義する方法ですが、他に、リッチルールやダイレクトルールで設定する方法もあります。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2015/07/29 21:00

    ネットワークの問題と思います。
    ルーターなどで 47382番ポートが許可されていないのではないでしょうか。

    全許可は /etc/hosts.allow, /etc/hosts.deny の両方をコメントアウトです。

    キャンセル

  • 2015/09/28 16:06

    ご回答有り難うございます.
    お返事大変遅れてしまい申し訳ありません.

    CentOS7を初期化し,ssh接続を許可(Port22)だけを行いましたが,それでも接続できませんでした.
    しかし,MacOS系のサーバにはssh(Port22)接続でができますので,ルータの問題では無いように思えます.
    他にどのような問題があげられるのでしょうか.

    キャンセル

  • 2015/09/30 16:54

    すいません,質問のページを切り替えます.
    →(【CentOS7】ssh接続,秘密・公開鍵でのアクセスができない)[https://teratail.com/questions/16932]

    キャンセル

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

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

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

  • CentOS

    3310questions

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