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

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

ただいまの
回答率

91.03%

  • CentOS

    2345questions

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

  • SSH

    459questions

    SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

CentOS7サーバーにSFTP接続出来なくなった

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 405

m6u

score 4989

お世話になっております、よろしくお付き合いください。

 目的

インターネット上に解説するサーバーを想定して、VMwareゲストOSとしてCentos7サーバーを構築しています。
webサーバーなので、/var/www/html/以下をメンテするユーザー(仮にwebグループのwebuser)はSSH接続(SFTPやSCPなど)させつつも、
古いシステムのためのデータ連携(CSVファイル送受信)のユーザー(仮にwebグループのnonsshuser)はFTPで接続できるようにしようとしています。

 質問主旨

CentOS - CentOS7&Vsftpdで非SSHユーザーをFTPできるようにしたい(96994)|teratail
の件で、非SSHユーザーを設定してFTPできるようになったのですが、
逆にこれまでSFTP出来ていたユーザーが認証で通らなくなり困っています。
[preauth]って言葉に振り回されている感じで、穴を開ける前にはつながっていたWinSCPの設定にも困ってます。
かといってSSH全廃するわけにもいかないので、どうにか両立させたいです。
情報不足な点などありましたらご指摘ください。

 環境、設定

 サーバー側(VMwareのゲストOS、192.168.0.142)

/etc/pam.d/sshd

account required pam_access.so accessfile=/etc/security/sshd_access.conf


を追加。

/etc/security/sshd_access.conf

+ : webuser : ALL
+ : user : ALL


を追加。(webuserは /var/www/html/ 編集用ユーザー、user(仮)はシェル利用。)

/etc/ssh/sshd_configには

(略)
# Authentication:

#LoginGraceTime 2m
#PermitRootLogin yes
PermitRootLogin no
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#RSAAuthentication yes
#PubkeyAuthentication yes
PubkeyAuthentication no
(略)
# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no
PermitEmptyPasswords no
#PasswordAuthentication yes
PasswordAuthentication no
(略)
#KerberosAuthentication no
(略)
#GSSAPIAuthentication no
(略)
UsePAM yes
(略)
Match User nonsshuser
        PasswordAuthentication yes


nonsshuser(仮)はSSHを使わず、/var/www/html/more/deep/path(仮)をルートディレクトリとしてアクセスできるユーザー。

肝心のvar/log/secure

Oct 24 17:38:12 localhost sshd[27360]: Connection from 192.168.0.13 port 57968 on 192.168.0.142 port 22
Oct 24 17:38:12 localhost sshd[27360]: debug1: Client protocol version 2.0; client software version WinSCP_release_5.11.2
Oct 24 17:38:12 localhost sshd[27360]: debug1: no match: WinSCP_release_5.11.2
Oct 24 17:38:12 localhost sshd[27360]: debug1: Enabling compatibility mode for protocol 2.0
Oct 24 17:38:12 localhost sshd[27360]: debug1: Local version string SSH-2.0-OpenSSH_6.6.1
Oct 24 17:38:12 localhost sshd[27360]: debug1: SELinux support enabled [preauth]
Oct 24 17:38:12 localhost sshd[27360]: debug1: permanently_set_uid: 74/74 [preauth]
Oct 24 17:38:12 localhost sshd[27360]: debug1: list_hostkey_types: ssh-rsa,ecdsa
-sha2-nistp256,ssh-ed25519 [preauth]
Oct 24 17:38:12 localhost sshd[27360]: debug1: SSH2_MSG_KEXINIT sent [preauth]
Oct 24 17:38:12 localhost sshd[27360]: debug1: SSH2_MSG_KEXINIT received [preauth]
Oct 24 17:38:12 localhost sshd[27360]: debug1: kex: client->server aes256-ctr hmac-sha2-256 none [preauth]
Oct 24 17:38:12 localhost sshd[27360]: debug1: kex: server->client aes256-ctr hmac-sha2-256 none [preauth]
Oct 24 17:38:12 localhost sshd[27360]: debug1: kex: curve25519-sha256@libssh.org need=32 dh_need=32 [preauth]
Oct 24 17:38:12 localhost sshd[27360]: debug1: kex: curve25519-sha256@libssh.org need=32 dh_need=32 [preauth]
Oct 24 17:38:12 localhost sshd[27360]: debug1: expecting SSH2_MSG_KEX_ECDH_INIT [preauth]
Oct 24 17:38:13 localhost sshd[27360]: debug1: SSH2_MSG_NEWKEYS sent [preauth]
Oct 24 17:38:13 localhost sshd[27360]: debug1: expecting SSH2_MSG_NEWKEYS [preauth]
Oct 24 17:38:13 localhost sshd[27360]: debug1: SSH2_MSG_NEWKEYS received [preauth]
Oct 24 17:38:13 localhost sshd[27360]: debug1: KEX done [preauth]
Oct 24 17:38:13 localhost sshd[27360]: debug1: userauth-request for user webuser service ssh-connection method none [preauth]
Oct 24 17:38:13 localhost sshd[27360]: debug1: attempt 0 failures 0 [preauth]
Oct 24 17:38:13 localhost sshd[27360]: debug1: PAM: initializing for "webuser"
Oct 24 17:38:13 localhost sshd[27360]: debug1: PAM: setting PAM_RHOST to "192.16
8.0.13"
Oct 24 17:38:13 localhost sshd[27360]: debug1: PAM: setting PAM_TTY to "ssh"
Oct 24 17:38:13 localhost sshd[27360]: error: Received disconnect from 192.168.0.13: 14: No supported authentication methods available [preauth]
Oct 24 17:38:13 localhost sshd[27360]: debug1: do_cleanup [preauth]
Oct 24 17:38:13 localhost sshd[27360]: debug1: monitor_read_log: child log fd cl
osed
Oct 24 17:38:13 localhost sshd[27360]: debug1: do_cleanup
Oct 24 17:38:13 localhost sshd[27360]: debug1: PAM: cleanup
Oct 24 17:38:13 localhost sshd[27360]: debug1: Killing privsep child 27361

 ユーザー側(WindowsホストOS、WinSCPでSFTPしようとしている)

ログファイルはこんな感じ。

. 2017-10-24 17:38:11.791 Looking up host "192.168.0.142" for SSH connection
. 2017-10-24 17:38:11.791 Connecting to 192.168.0.142 port 22
. 2017-10-24 17:38:11.791 We claim version: SSH-2.0-WinSCP_release_5.11.2
. 2017-10-24 17:38:11.804 Server version: SSH-2.0-OpenSSH_6.6.1
. 2017-10-24 17:38:11.804 We believe remote version has SSH-2 channel request bug
. 2017-10-24 17:38:11.804 Using SSH protocol version 2
. 2017-10-24 17:38:11.804 Have a known host key of type ssh-ed25519
. 2017-10-24 17:38:11.804 Doing ECDH key exchange with curve Curve25519 and hash SHA-256
. 2017-10-24 17:38:12.219 Server also has ecdsa-sha2-nistp256/ssh-rsa host keys, but we don't know any of them
. 2017-10-24 17:38:12.220 Host key fingerprint is:
. 2017-10-24 17:38:12.220 ssh-ed25519 256 1e:d3:9c:79:8f:9c:e2:f9:03:a9:69:49:e1:01:ca:35
. 2017-10-24 17:38:12.220 Verifying host key ssh-ed25519 0x45f4700d62fad8c2 7f2498cbde78352d d913e573f206fd7a 4990bbfcc834b450 ,0x25dbc0e879f9240e e2c2e71c7d7904b3 89c7d64853411a2b 4dc5b92802963bae  with fingerprint ssh-ed25519 256 1e:d3:9c:79:8f:9c:e2:f9:03:a9:69:49:e1:01:ca:35
. 2017-10-24 17:38:12.258 Host key matches cached key
. 2017-10-24 17:38:12.258 Initialised AES-256 SDCTR client->server encryption
. 2017-10-24 17:38:12.258 Initialised HMAC-SHA-256 client->server MAC algorithm
. 2017-10-24 17:38:12.258 Initialised AES-256 SDCTR server->client encryption
. 2017-10-24 17:38:12.258 Initialised HMAC-SHA-256 server->client MAC algorithm
. 2017-10-24 17:38:12.299 Reading key file "C:\~~~~~~\webuser_private_key.ppk"
! 2017-10-24 17:38:12.300 Using username "webuser".
. 2017-10-24 17:38:12.323 Server offered these authentication methods: 
. 2017-10-24 17:38:12.323 Disconnected: No supported authentication methods available (server sent: )
* 2017-10-24 17:38:12.336 (EFatal) Disconnected: No supported authentication methods available (server sent: )
* 2017-10-24 17:38:12.336 認証ログ (詳細はセッション ログを見て下さい):
* 2017-10-24 17:38:12.336 ユーザ名"webuser" を使用中
* 2017-10-24 17:38:12.336 
* 2017-10-24 17:38:12.336 認証に失敗
  • 気になる質問をクリップする

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

質問への追記・修正、ベストアンサー選択の依頼

  • TaichiYanagiya

    2017/10/26 00:36

    やりたいことは、「webuser はパスワード認証で SFTP させたい。nonsshuser は FTP/FTPS させたいが、SSH/SFTP/SCP させない。」ということですか?

    キャンセル

  • m6u

    2017/10/26 09:49

    わかりにくくてすみません、そういうことです。nonsshuserは古いシステムのための非常手段として、SSHを使わずに利用できるようにしたいのです。

    キャンセル

回答 1

checkベストアンサー

0

sshd_config で PasswordAuthentication no と設定したため、パスワード認証ができなくなっています。

パスワード認証の許可

sshd_config で PasswordAuthentication yes に戻します。
また、Match User nonsshuser 箇所も無意味ですので、削除します。

nonsshuser の SSH 禁止

pam_access で制限してもいいですが、sshd_config で DenyUsers nonsshuser と設定した方が簡単です。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2017/10/26 12:39

    回答有り難うございます。まだ試す前ですが、その方向ならパスワード認証できそうですね。
    SSH使いたい→SSH 鍵認証したい(よりセキュアだし)という考えでおりました。パスワード認証ができるのはnonsshuserだけで、他のユーザーは鍵認証でいいかなって。パスワード認証だけでもいいのかなぁ、インターネット上にホストするサーバーは。鍵認証にこだわらないほうが良いでしょうか。

    キャンセル

  • 2017/10/26 12:50

    鍵認証にできるのであれば、鍵認証のみにした方がいいです。
    "PubkeyAuthentication yes", "PasswordAuthentication no" とする必要があります。
    なぜ、"PubkeyAuthentication no" としたのかわかりませんが。

    キャンセル

  • 2017/10/26 13:03

    あっ、"PubkeyAuthentication no"をyesにしただけで直ったようです。WinSCPもttsshもつながるようになりました。なぜnoにしていたのかは今となってはよくわかりません。お恥ずかしい。

    キャンセル

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

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

関連した質問

  • 解決済

    vagrantを使ってCentOSをインストールしたいのですが・・・

    Vagrantを使って、CentOSをインストールしようとしてるのですが、 うまくいきません。 解決策をご教示いただけないでしょうか。 <環境> Windows10 p

  • 解決済

    Tera Termでcentosに接続できない

    ○バージョン ・centos6.8 ・virtualBox 5.0.20 ・Tera Term 4.90 ○状況 Tera Term立ち上げ、ファイル>新しい接続のと

  • 解決済

    VCCWにphpMyAdminを追加する方法

    VCCWというVagrantベースの「Vagrant + Chef + WordPress」開発環境を構築したのですが、データベースの参照・編集がしたくなり、phpMyAdminを

  • 解決済

    Sequel proでssh接続

    エンジニア初心者です。 わかりやすい質問が出来ないかもしれませんが、宜しくお願い致します。 今回、Vagrant+virtualboxで環境構築をして、自分のウェブサイトを

  • 解決済

    L2TP/IPsecでVPN接続のトラブルシューティングについて。

    前提・実現したいこと L2TP/IPsec方式でVPN接続を行いたいです。 yamahaルーター側とmac/win/iphoneなど接続機器側での認証方式・鍵の間違いはないと思

  • 解決済

    CentOSにて一部ポートのみ全開放する設定

    前提・実現したいこと CentOSにてサーバー構築を行っております。 基本的にはhosts.allow denyとiptablesを用いてipによるアクセス制限をしているのです

  • 解決済

    RaspberryPi3にSSHで接続できない

    前提・実現したいこと これまでRaspberryPi2でサーバーを建てていましたが、今回、RaspberryPi3もサーバーにしようと思いました。 IPアドレスを固定して、Te

  • 解決済

    SSH接続時の userって? hostnameって?

    下記の記事を読見ました。 インフラエンジニアじゃなくても押さえておきたいSSHの基礎知識 - Qiita ただ、ここの「user」、 「hosename」が、いまいち理解できま

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

  • CentOS

    2345questions

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

  • SSH

    459questions

    SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。