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

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

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

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

SSH

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

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

6594閲覧

SSHにChrootDirectoryを設定すると、unknown user 1001になる

makkuro

総合スコア57

CentOS

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

SSH

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

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2019/06/08 17:50

#やりたいこと
リモートにsshというホームディレクトリだけしか操作できないユーザを作り、scpでsshユーザのホームディレクトリにファイルをコピーしたいです。

後から後悔したのですが、sshというユーザを作成しているので分かりづらいです。ご了承ください。

#やったこと
chrootを用いてSSHユーザのディレクトリを制限するというサイトを参考にして、sshというユーザを作成しました。

#起こった問題

bash

1ssh -i ./id_rsa ssh@111.11.11.111

でログインしたとき、本来であれば

bash

1[ssh@111-11-11-111 ~]$

のように表示して欲しいのですが、以下のように表示されてしまいます。
また、idコマンドを打ってみると、以下のように表示されます。

bash

1-bash-4.2$ id 2 3uid=1001 gid=1001 groups=1001

理由は分かっていて、/etc/ssh/sshd_configChrootDirectoryをコメントアウトすると、ルートディレクトリが制限されない代わりに、sshとしてログインできます。

sshd

1Match User ssh 2# ChrootDirectory /home/ssh 3 X11Forwarding no 4 AllowTcpForwarding no 5 PubkeyAuthentication yes 6 PasswordAuthentication no 7 AuthorizedKeysFile .ssh/authorized_keys

上記のようにsshではログインできるのですが、scpでファイルをコピーしようとするとunknown user 1001と言われるので困っています。

bash

1$ scp -i ./id_rsa ./$fileName ssh@111.11.11.111:/ 2unknown user 1001 3lost connection

ChrootDirectoryでルートディレクトリを制限しつつ、sshユーザとしてログインする方法を教えていただきたいです。よろしくお願いします。

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

経験則として、 scp の場合、chroot 環境にも /etc/passwd や /etc/group を用意しないと unknown user <uid> のエラーが発生します。

参考にされた手順には、chroot環境に /etc/passwd や /etc/group を用意していないようですが、存在しているでしょうか?

他のユーザー名が見えてもいいのであれば、cp /etc/passwd /home/ssh/etc/passwd, cp /etc/group /home/ssh/etc/group の様にコピーするか

/home/ssh/etc/passwd/home/ssh/etc/group のファイルをエディタで作成して、chroot で必要なユーザーだけを記載してください。


プロンプトに関しては、 .bashrc のなかで、 /etc/bashrc を呼び出していて、/etc/bashrc の中で、デフォルトのプロンプトは下記のように設定されています

[ "$PS1" = "\s-\v\$ " ] && PS1="[\u@\h \W]\$ "

これも設定するには chroot環境に /etc/bashrc をコピーして用意するか .bash_profile や .bashrc で、個別に設定する必要があります。

投稿2019/06/08 20:55

編集2019/06/08 21:01
CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

makkuro

2019/06/09 09:50

完璧な回答ありがとうございます。 プロンプトの表示の問題と、scpが使えない問題が別だとは思いもしませんでした。 無事scpでアップロードできるようになりました。 本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問