現在の人が自分のサーバー(またはSSH)にTelnetを接続するたびに、ユーザー名/パスワードを入力するように求められます。
後でその特定のユーザーに対して自己認証を実行するため、これは重複します。ユーザーは bash シェルの代わりに特定の bash スクリプトを自動的に起動します。
ユーザーを指定せずにTelnetまたはSSHを介してアクセスすると、自動的にログインしてサービスまたはスクリプトに接続するいくつかのシステムを見たことがあります。ただし、これを行うために構成を変更する方法がわかりません。ほとんどの答えは、リモート接続にパスワードを自動的に渡すことに関連しています。
ユーザー名が指定されていない場合、スクリプトがこのユーザー名をデフォルトに設定し、パスワードの入力を求めないようにDebainでSSH / Telnetを設定できますか? (基本的には何も尋ねずにすぐに接続されます)。
たとえば、ユーザー名を手動で指定できる必要がありますroot@server
。そうでなければ直接入ることはできません!
私が探しているものの例は次のとおりです。
SSH経由でアクセスすると[email protected]
すぐにログイン画面をバイパスし、BBSプログラムに直接移動します。
ここに偶数があります。より良いもの何かの例正確に私が探しているもの:ssh sshtron.zachlatta.com
これは正確に私が欲しいもの。ユーザー名を持つことは重要ですが、パスワードを無視するか、パスワードを空白のままにして自動的に続行する必要があります。
pam
修正して許可してみましたが、sshd_config
以前のパスワードも、空のパスワードも動作しませんでした。
答え1
SSH を使用すると、ユーザー名は実際にはプロトコルの接続情報の一部として渡され、SSH サーバーはUsername:
メッセージを表示しません。メッセージが表示されたら、SSH クライアントです。
(これは、Linux / Unixなどのユーザー名をローカルに見つける可能性が低いWindowsなどのプラットフォームで一般的なものであるため、PuTTYなどのクライアントは構成されていない場合はユーザー名の入力を求めます。)
つまり、SSHのユーザー名は常に構成する必要があります。
その特定のアカウントに空白のパスワード(パスワードなしなど)を設定すると、パスワードプロンプトを無視できます。これにより、SSH inはユーザーが設定したシェルに直接接続します。 SSHまたはPAMは、パスワードなしのアクセスをブロックするように構成できますが、それを許可するように再構成することが可能でなければなりません(具体的な情報については、/etc/ssh/sshd_config
または同様のものを参照)。/etc/pam.d/ssh
sshd
これは悪い考えです。特定の形式の認証を持たないSSHはおそらく悪い考えでしょう。特にSSHを野生のインターネットに公開したい場合は、そうすることを決める前にもう一度考えてみてください。
Telnetに関しては、Telnetプロトコルは非常に単純なので、多くの場合無視できます。おそらくstdinから読み込みstdoutに書き込むセッションプログラムを作成し、次の最小限のフックを使用することもできますtcpd
。nc
システムソケットユニットAccept=yes
マルチインスタンスサービス(名前で終わる名前)は、@
TCPポートにサービスを公開してtelnet
接続するために使用されます。お客様はプログラムに直接移動するため、お客様に代わって認証やユーザー名の交換は行われません。 Telnetは暗号化されていないプロトコルであり、同じネットワークまたはネットワークパス上の他の人が交換された完全な情報を見ることができるので、機密情報(言及したパスワードを含む)を交換する予定であれば、独自のアプリケーション内で認証を計画しているはずです。もしそうなら、おそらくTelnetを完全に避けるべきです。