今日SSHを介して私のサーバーに接続しようとしたときに許可拒否メッセージを受け取りました(と同じsftp
)。以前はうまく機能し、いくつかのフォルダのアクセス許可を変更しようとした以外はサーバー設定を変更しませんでしたchown
。
rootユーザーが動作ssh
/sftp
問題ありません。
(rootユーザーの場合はファイルがなく、ファイルは.ssh/authorized_keys
1つだけです。通常のユーザーの場合は、ホームフォルダにフォルダが.ssh/known_hosts
ありません。).ssh
答え1
ルートアクセス権があると言われました。問題の原因を特定するには、rootとしてボックスにSSHでアクセスしてください。デフォルトのログファイルを確認してください/var/log/messages
。
このコマンドをtail -f /var/log/messages
端末で実行し続け、通常のユーザーとして SSH 経由でサーバーに接続します。ログファイルのエントリを表示します。
答え2
~/.ssh ディレクトリおよび/または ~/.ssh/authorized_keys ファイルの権限を変更したようです。あるいは、ホームグループまたは全体を書き込み可能にすることもできます。
~/.ssh は 700(drwx------) で、 ~/.ssh/authorized_keys は 600(-rw-------) でなければなりません。
~/.sshの秘密鍵ファイルid_rsa
(など)もid_dsa
600でなければなりません。公開鍵ファイル(、など)に対する権限はid_rsa.pub
厳格id_dsa.pub
ではありません。誰でも読むことができます。
これらすべてのファイルとディレクトリはユーザーが所有する必要があります。
ホームディレクトリが誰でも書き込み可能で、StrictModesがsshd_configに設定されている場合(デフォルトは「yes」)、sshdはホームディレクトリの下の何も信頼しません(〜/ .sshおよびその中のすべてのエントリを含む)。これは、グローバルに書き込み可能なホームディレクトリだからです。これは、システムのすべてのユーザーがこれらのファイルを作成または変更できることを意味します。
Centosのsshdがグループ書き込み可能ホームディレクトリをどのように処理するかはわかりませんが、ホームディレクトリがグループ書き込み可能であれば同じことが当てはまります。グループ内のすべてのユーザーが〜/ .sshファイルを作成/変更した可能性があります。 (IIRC Debianのsshdはグループ書き込み可能なホームディレクトリを許可するように設定されています。ユーザーごとのグループユーザーのみがメンバーです)