
ユーザーを公に許可したいです。つまり、ユーザーがパスワードを入力したり公開鍵を設定したりせずにログインできるようにしたいのです。これはオープンなSSHアプリケーションを作成するためのものです。簡単なはずですがうまくいかないようです。ここに私のsshd_configがあります。
UsePAM no
Match User app
X11Forwarding no
AllowTcpForwarding no
# PermitTTY no
PermitEmptyPasswords yes
AuthenticationMethods none
ForceCommand myapp
クライアントで ssh を試みると、パスワードの入力を求められます。
[email protected]'s password:
Permission denied, please try again.
いくつかのバリエーションを試しましたが、運がありません。
ありがとうございます。
答え1
予備説明
- 管理者権限シェル(
sudo -i
)を起動して開いたままにします。問題が発生した場合は、管理者権限シェルを使用して変更を元に戻してください。 sudo cp -a …
変更したいファイルのコピーを作成します()。- 最後に、もう一度ログインして
sudo
再認証できることを確認してください。次に、持ち上げられたハウジングを閉じます。
ソリューション - パート1:/etc/ssh/sshd.conf
自分で管理されたパスワード認証sshd
ではなく、PAMと対応するキーボード対話型認証を使用するように設定します。sshd
最も簡単な方法は、すべてのユーザーに対して無条件にこれを行うことです。存在する/etc/ssh/sshd.conf
:
UsePAM yes
PasswordAuthentication no
KbdInteractiveAuthentication yes
#...
メモ:
各パラメータで最初に取得した値を使用します。
ChallengeResponseAuthentication
KbdInteractiveAuthentication
はい、エイリアスは使用されなくなったため、ファイルに古い名前がないことを確認してください。ChallengeResponseAuthentication no
PasswordAuthentication
ユーザーのためのキーボード対話型認証と他のユーザーのための一般的なパスワード認証を実行できるように、後ろに配置できますが、KbdInteractiveAuthentication
グローバルです。スニペットは次のとおりです。Match User …
app
UsePAM
UsePAM yes Match User app PasswordAuthentication no KbdInteractiveAuthentication yes Match All PasswordAuthentication yes KbdInteractiveAuthentication no
sshd
ファイルを修正して再起動または再ロードします(例:Debian sudo systemctl reload ssh.service
:)。
ソリューション - パート2:/etc/pam.d/common-auth
または/etc/pam.d/sshd
2つの方法:
- 常に自動的にユーザーを認証するように変更して
app
ください/etc/pam.d/commmon-auth
。 - 関連付けられているときにユーザーを自動的に認証したい場合は、変更しますが、
app
変更しないでください。sshd
/etc/pam.d/sshd
/etc/pam.d/commmon-auth
実際には、または/etc/pam.d/commmon-auth
を修正する必要があります/etc/pam.d/sshd
。それらを修正することはあまりにも多くです。
ソリューション - パート2a:/etc/pam.d/common-auth
常に自動的にユーザーを認証するようにPAMを設定するには、inを含む(すでに存在する)行の前に次のものを含む行を追加しますapp
。ファイルは次のようにする必要があります。pam_succeed_if.so
pam_unix.so
/etc/pam.d/common-auth
# [...]
auth [success=2 default=ignore] pam_succeed_if.so user = app
auth [success=1 default=ignore] pam_unix.so nullok
# [...]
auth requisite pam_deny.so
# [...]
auth required pam_permit.so
# [...]
修正された方法です。この他の答え、そこに説明があります。pam_succeed_if
ユーザーがapp
認証のために処理(パスワードを求めるメッセージ)を実行する必要がないように、これを最初に入れましたpam_unix
。
app
su app
たとえば、認証を要求するすべてのツールに対して自動的にユーザーを認証します。要求app
時にのみsshd
ユーザーを自動的に認証するには、以下を変更する必要があります/etc/pam.d/sshd
。
ソリューション - パート2b:/etc/pam.d/sshd
関連するユーザーを自動的に認証するように PAM を設定するには、app
(既に存在する) 前に 2 行を追加します.ファイルの先頭は次のようになります。sshd
@include common-auth
/etc/pam.d/sshd
# [...]
auth [success=1 default=ignore] pam_succeed_if.so user != app
auth sufficient pam_permit.so
# Standard Un*x authentication.
@include common-auth
# [...]
[...]