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