SSHサーバーに接続していますが、SSHD構成を完全に制御することはできません。サーバーは公開鍵認証とパスワード認証を許可しますが、SSHをブロックしたいと思います。顧客公開鍵認証に失敗してもパスワード認証に切り替えられません。
PasswordAuthentication no
サーバーエントリに追加しようとしましたが、~/.ssh/config
目立つ効果はありませんでした。
可能ですか?
私はこれが追加のセキュリティを提供しないことを理解しています。一部のアプリがパスワードを待っている間に停止するのを防ぐために、ユーザーエクスペリエンス目的でこれを行います。
答え1
ssh
バッチモードの場合、次のメッセージは表示されません。
ssh -oBatchMode=yes you@theotherhost command
設定できます
alias ssh /usr/bin/ssh -oBatchMode=yes
あなたの場合、.bashrc
対話型セッションのクライアントパスワード認証は無効になります。 (あなたがしない限り/us/bin/ssh
)
より詳細な解決策は次のとおりです。
/usr/local/bin
前に確認PATH
してください/usr/bin
- ファイルの作成
/usr/local/bin/ssh
:
#!/bin/bash
/usr/bin/ssh $*
chmod a+rx /usr/local/bin/ssh
しかし、これらのどれも完璧ではありません。
答え2
クライアントコマンドまたは~/.ssh/config
:
ここで解決策のいくつかの可能性を見つけることができます。
現在のSSH接続試行のパスワード認証を無効にするには、コマンドラインからこのオプションを渡します。
-o PasswordAuthentication=no
すべてのホストへの今後のすべての接続に対してパスワード認証を無効にするには、 ~/.ssh/config に次を追加します.
PasswordAuthentication no
コマンドライン(または〜/ .ssh / config)でPreferredAuthenticationsを設定できます。
PreferredAuthentications=publickey
SSHクライアントのパスワードプロンプトを無効にする方法は?
これを行う標準的な方法は、BatchModeオプションを使用することです。
ssh -o BatchMode=yes …
リモート/サーバー側/etc/ssh/sshd_config
:
パスワードを使用したくない場合は、/etc/ssh/sshd_config
リモートコンピュータで変更できます。PasswordAuthentication no
sshd_configリモートシステムのいくつかの一般的な設定:
PermitRootLogin no # No root login
PasswordAuthentication no # No password login
PermitEmptyPasswords no # No empty password
PubkeyAuthentication yes # login with public key
編集後にサービスを再起動してください