QA@IT
«回答へ戻る

5599
-CentOS 6.5 x64で同様の設定を試してみましたが、接続できました。
+CentOS 6.5 x64(インストールしたて)で同様の設定を試してみましたが、接続できました。
 参考になるかはわかりませんが、以下のような設定になっています(といってもほとんどは同じです)。
 なお、apacheはインストールしてませんのでその辺りの設定なのかもしれません。
 

CentOS 6.5 x64(インストールしたて)で同様の設定を試してみましたが、接続できました。
参考になるかはわかりませんが、以下のような設定になっています(といってもほとんどは同じです)。
なお、apacheはインストールしてませんのでその辺りの設定なのかもしれません。

sftpuserというユーザーを対象に設定しています。


Windows 8.1 側

秘密鍵
ppkファイルは、CentOS上で作成した秘密鍵を puttygenにロードし、ppkとして保存。
パスフレーズなし。
pageantは終了させてある。

FileZilla
FileZillaのsftp設定で、ppk設定済み。

FileZilla サイトマネージャの設定

  • プロトコル : SFTP
  • ログオンの種類:通常
  • ユーザー名:sftpuser
  • パスワード:<空>

FileZilla 成功ログ

状態: 172.16.79.192 に接続中...
レスポンス:    fzSftp started
コマンド:   keyfile "C:\ssh_key_centos_sftp\c65sftp.ppk"
コマンド:   open "sftpuser@172.16.79.192" 22
状態: Connected to 172.16.79.192
状態: ディレクトリ一覧を取得中...
コマンド:   pwd
レスポンス:    Current directory is: "/"

CentOS

SELinux

[root@localhost ~]# getenforce
Enforcing

[root@localhost ~]# getsebool ssh_chroot_full_access
ssh_chroot_full_access --> on
[root@localhost ~]# getsebool ssh_chroot_manage_apache_content
ssh_chroot_manage_apache_content --> on

ポリシー

[root@localhost ~]# semodule -l | grep sshd
sshd    1.0 

[root@localhost tework]# cat local.te
module sshd 1.0;

require {
    type chroot_user_t;
    type inetd_t;
    type sshd_t;
    type user_home_dir_t;
    class tcp_socket { getopt getattr setopt };
    class file read;
}

#============= chroot_user_t ==============
allow chroot_user_t inetd_t:tcp_socket { getopt getattr setopt };

#============= sshd_t =============
allow sshd_t user_home_dir_t:file read;

sshd
/etc/ssh/sshd_config 変更部分のみ

# override default of no subsystems
##Subsystem     sftp    /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Match User sftpuser
    ForceCommand internal-sftp
    ChrootDirectory /home/%u

公開鍵 パーミッション
home.ssh750authorized_keys440

[root@localhost ~]# ls -lad /home/sftpuser/
drwxr-x---. 4 root sftpuser 4096  4月 17 06:46 2014 /home/sftpuser/
[root@localhost ~]# ls -lad /home/sftpuser/.ssh
drwxr-x---. 2 root sftpuser 4096  4月 17 06:34 2014 /home/sftpuser/.ssh
[root@localhost ~]# ls -la /home/sftpuser/.ssh/authorized_keys 
-r--r-----. 1 root sftpuser 408  4月 17 06:33 2014 /home/sftpuser/.ssh/authorized_keys

その他

Apacheなし

[root@localhost ~]# service httpd status
httpd: 認識されていないサービスです。
CentOS 6.5 x64(インストールしたて)で同様の設定を試してみましたが、接続できました。
参考になるかはわかりませんが、以下のような設定になっています(といってもほとんどは同じです)。
なお、apacheはインストールしてませんのでその辺りの設定なのかもしれません。


`sftpuser`というユーザーを対象に設定しています。

---

# Windows 8.1 側

**秘密鍵**
ppkファイルは、CentOS上で作成した秘密鍵を puttygenにロードし、ppkとして保存。
パスフレーズなし。
pageantは終了させてある。

**FileZilla**
FileZillaのsftp設定で、ppk設定済み。

FileZilla サイトマネージャの設定
* プロトコル : SFTP
* ログオンの種類:通常
* ユーザー名:sftpuser
* パスワード:<空>


FileZilla 成功ログ
```
状態:	172.16.79.192 に接続中...
レスポンス:	fzSftp started
コマンド:	keyfile "C:\ssh_key_centos_sftp\c65sftp.ppk"
コマンド:	open "sftpuser@172.16.79.192" 22
状態:	Connected to 172.16.79.192
状態:	ディレクトリ一覧を取得中...
コマンド:	pwd
レスポンス:	Current directory is: "/"
```

# CentOS

**SELinux**

```bash
[root@localhost ~]# getenforce
Enforcing

[root@localhost ~]# getsebool ssh_chroot_full_access
ssh_chroot_full_access --> on
[root@localhost ~]# getsebool ssh_chroot_manage_apache_content
ssh_chroot_manage_apache_content --> on
```

**ポリシー**
```bash
[root@localhost ~]# semodule -l | grep sshd
sshd	1.0	

[root@localhost tework]# cat local.te
module sshd 1.0;

require {
	type chroot_user_t;
	type inetd_t;
	type sshd_t;
	type user_home_dir_t;
	class tcp_socket { getopt getattr setopt };
	class file read;
}

#============= chroot_user_t ==============
allow chroot_user_t inetd_t:tcp_socket { getopt getattr setopt };

#============= sshd_t =============
allow sshd_t user_home_dir_t:file read;
```


**sshd**
`/etc/ssh/sshd_config` 変更部分のみ

```
# override default of no subsystems
##Subsystem     sftp    /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Match User sftpuser
    ForceCommand internal-sftp
    ChrootDirectory /home/%u
```

**公開鍵 パーミッション**
`home`と`.ssh`は`750`、`authorized_keys`は`440`

```bash
[root@localhost ~]# ls -lad /home/sftpuser/
drwxr-x---. 4 root sftpuser 4096  4月 17 06:46 2014 /home/sftpuser/
[root@localhost ~]# ls -lad /home/sftpuser/.ssh
drwxr-x---. 2 root sftpuser 4096  4月 17 06:34 2014 /home/sftpuser/.ssh
[root@localhost ~]# ls -la /home/sftpuser/.ssh/authorized_keys 
-r--r-----. 1 root sftpuser 408  4月 17 06:33 2014 /home/sftpuser/.ssh/authorized_keys
```


**その他**

Apacheなし
```
[root@localhost ~]# service httpd status
httpd: 認識されていないサービスです。
```

回答を投稿

CentOS 6.5 x64で同様の設定を試してみましたが、接続できました。
参考になるかはわかりませんが、以下のような設定になっています(といってもほとんどは同じです)。
なお、apacheはインストールしてませんのでその辺りの設定なのかもしれません。

sftpuserというユーザーを対象に設定しています。


Windows 8.1 側

秘密鍵
ppkファイルは、CentOS上で作成した秘密鍵を puttygenにロードし、ppkとして保存。
パスフレーズなし。
pageantは終了させてある。

FileZilla
FileZillaのsftp設定で、ppk設定済み。

FileZilla サイトマネージャの設定

  • プロトコル : SFTP
  • ログオンの種類:通常
  • ユーザー名:sftpuser
  • パスワード:<空>

FileZilla 成功ログ

状態: 172.16.79.192 に接続中...
レスポンス:    fzSftp started
コマンド:   keyfile "C:\ssh_key_centos_sftp\c65sftp.ppk"
コマンド:   open "sftpuser@172.16.79.192" 22
状態: Connected to 172.16.79.192
状態: ディレクトリ一覧を取得中...
コマンド:   pwd
レスポンス:    Current directory is: "/"

CentOS

SELinux

[root@localhost ~]# getenforce
Enforcing

[root@localhost ~]# getsebool ssh_chroot_full_access
ssh_chroot_full_access --> on
[root@localhost ~]# getsebool ssh_chroot_manage_apache_content
ssh_chroot_manage_apache_content --> on

ポリシー

[root@localhost ~]# semodule -l | grep sshd
sshd    1.0 

[root@localhost tework]# cat local.te
module sshd 1.0;

require {
    type chroot_user_t;
    type inetd_t;
    type sshd_t;
    type user_home_dir_t;
    class tcp_socket { getopt getattr setopt };
    class file read;
}

#============= chroot_user_t ==============
allow chroot_user_t inetd_t:tcp_socket { getopt getattr setopt };

#============= sshd_t =============
allow sshd_t user_home_dir_t:file read;

sshd
/etc/ssh/sshd_config 変更部分のみ

# override default of no subsystems
##Subsystem     sftp    /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Match User sftpuser
    ForceCommand internal-sftp
    ChrootDirectory /home/%u

公開鍵 パーミッション
home.ssh750authorized_keys440

[root@localhost ~]# ls -lad /home/sftpuser/
drwxr-x---. 4 root sftpuser 4096  4月 17 06:46 2014 /home/sftpuser/
[root@localhost ~]# ls -lad /home/sftpuser/.ssh
drwxr-x---. 2 root sftpuser 4096  4月 17 06:34 2014 /home/sftpuser/.ssh
[root@localhost ~]# ls -la /home/sftpuser/.ssh/authorized_keys 
-r--r-----. 1 root sftpuser 408  4月 17 06:33 2014 /home/sftpuser/.ssh/authorized_keys

その他

Apacheなし

[root@localhost ~]# service httpd status
httpd: 認識されていないサービスです。
CentOS 6.5 x64で同様の設定を試してみましたが、接続できました。
参考になるかはわかりませんが、以下のような設定になっています(といってもほとんどは同じです)。
なお、apacheはインストールしてませんのでその辺りの設定なのかもしれません。


`sftpuser`というユーザーを対象に設定しています。

---

# Windows 8.1 側

**秘密鍵**
ppkファイルは、CentOS上で作成した秘密鍵を puttygenにロードし、ppkとして保存。
パスフレーズなし。
pageantは終了させてある。

**FileZilla**
FileZillaのsftp設定で、ppk設定済み。

FileZilla サイトマネージャの設定
* プロトコル : SFTP
* ログオンの種類:通常
* ユーザー名:sftpuser
* パスワード:<空>


FileZilla 成功ログ
```
状態:	172.16.79.192 に接続中...
レスポンス:	fzSftp started
コマンド:	keyfile "C:\ssh_key_centos_sftp\c65sftp.ppk"
コマンド:	open "sftpuser@172.16.79.192" 22
状態:	Connected to 172.16.79.192
状態:	ディレクトリ一覧を取得中...
コマンド:	pwd
レスポンス:	Current directory is: "/"
```

# CentOS

**SELinux**

```bash
[root@localhost ~]# getenforce
Enforcing

[root@localhost ~]# getsebool ssh_chroot_full_access
ssh_chroot_full_access --> on
[root@localhost ~]# getsebool ssh_chroot_manage_apache_content
ssh_chroot_manage_apache_content --> on
```

**ポリシー**
```bash
[root@localhost ~]# semodule -l | grep sshd
sshd	1.0	

[root@localhost tework]# cat local.te
module sshd 1.0;

require {
	type chroot_user_t;
	type inetd_t;
	type sshd_t;
	type user_home_dir_t;
	class tcp_socket { getopt getattr setopt };
	class file read;
}

#============= chroot_user_t ==============
allow chroot_user_t inetd_t:tcp_socket { getopt getattr setopt };

#============= sshd_t =============
allow sshd_t user_home_dir_t:file read;
```


**sshd**
`/etc/ssh/sshd_config` 変更部分のみ

```
# override default of no subsystems
##Subsystem     sftp    /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Match User sftpuser
    ForceCommand internal-sftp
    ChrootDirectory /home/%u
```

**公開鍵 パーミッション**
`home`と`.ssh`は`750`、`authorized_keys`は`440`

```bash
[root@localhost ~]# ls -lad /home/sftpuser/
drwxr-x---. 4 root sftpuser 4096  4月 17 06:46 2014 /home/sftpuser/
[root@localhost ~]# ls -lad /home/sftpuser/.ssh
drwxr-x---. 2 root sftpuser 4096  4月 17 06:34 2014 /home/sftpuser/.ssh
[root@localhost ~]# ls -la /home/sftpuser/.ssh/authorized_keys 
-r--r-----. 1 root sftpuser 408  4月 17 06:33 2014 /home/sftpuser/.ssh/authorized_keys
```


**その他**

Apacheなし
```
[root@localhost ~]# service httpd status
httpd: 認識されていないサービスです。
```