ユーザーレベルで対話型SSHを無効にする

ユーザーレベルで対話型SSHを無効にする

SSH 経由で自分が管理していないサーバーに接続します。

公開キーアクセスを使用するので、キーボード対話型パスワードで接続する必要はありません。

他のユーザーがこの方法でハッキングできないように、ユーザーへのキーボード対話型アクセスを無効にしたいと思います。

サーバーを制御していないので、キーボード対話型アクセスを防止するためにユーザーの構成ファイルを設定する方法はありますか?

答え1

サーバーをまったく制御できない場合は、サーバー設定を制御できないため、これを行う方法はないと思います。

必要なのは、これを /etc/ssh/sshd_config ファイルに追加することです:

PasswordAuthentication no

これで、パスワード認証が事実上無効になります。全てユーザーに適用されるため、望ましくない可能性があります。その場合は、この設定ディレクティブを Match ブロックに配置して、同じ設定ファイル内のユーザーにのみ適用されるようにします。

Match user yourusername
PasswordAuthentication no

サーバーの管理者にこれを実行してもらうことができれば、それが最善の方法かもしれません。

もう 1 つの方法は、ユーザーに非常に長く、ランダムで複雑なパスワードを設定することです。こうすることで、ランダムなブルート フォース攻撃による侵入の試みから十分に保護されます。ほとんどの攻撃者は辞書ベースの手法を使用する可能性が高いため、パスワードが十分に長く、ランダムである限り、非常に安全です。

詳細については「man sshd_config」を参照してください。また、私が提案した解決策はここ

答え2

/etc/ssh/sshd_configファイルのこの行をから にyes編集するだけですno:

#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no

答え3

[ログイン シェルとして BASH を使用していると想定しています。そうでない場合は、適切に調整してください...]

では~/.ssh/authorized_keys、次のように各行の先頭にコマンド指定を追加します。

command="ssh_key=XXX /bin/bash -l" ssh-dss AAAA...K3E= me@mymachine

では~/.bash-profile、上部に次のトラップを配置します。

if [ "${ssh_key}" != "XXX" ]; then
  echo "${SSH_CLIENT}" | mailx -s "password login attempt!" me@mailservice
  exit
fi

これで、誰かがパスワードを使用してアカウントにログインしたときにのみメールが届くようになります。

関連情報