web-dev-qa-db-ja.com

SSH vs / andパスワード

SSHキー経由でrootにログインしているVPSがあります。

ここで、コマンドadduserを使用して別のユーザーuser1を作成し、それにパスワードを割り当てました。ただし、user1を使用してwinSCPを介してサーバーにログインしようとすると、秘密キーを入力する必要があり、ユーザー1のパスワードを使用してログインできないというエラーが表示されます。

私の質問は次のとおりです。

  • ユーザーは2つの方法でログインできますか?つまり、SSHキーとパスワードを使用していますか?
  • SSHを使用している場合、システムのすべてのユーザーがログインにキーを使用するようにバインドされていますか?
3
tony9099

この回答の最後の例のように、/etc/ssh/sshd_configファイルに特定のユーザーのルールを追加できます。しかし、が警告される前に、SSHを介したパスワードログインを許可することは、サーバーに対して可能な総当たり攻撃の観点からやや安全ではありません。そのため、最も安全な方法は、VPSまたは別のLinuxマシンで次の行を使用して別のSSHキーを作成することです。最良の方法は、su - user1で次のコマンドを使用する前に、そのマシンでuser1に切り替えることです。 (注:-fはパスに苦労するため、キーペアを作成するディレクトリに移動する必要があります):

ssh-keygen -t rsa -C "[email protected]" -f user1_key

ユーザーは、自分のキーペアを短時間でVPSまたは別のLinuxマシンにコピーすることで、パスフレーズを後で変更できます。

ssh-keygen -p -f user1_key

次に、秘密鍵(user1_key)をuser1に渡し、VPSのuser1_key.pubの下のユーザーのホームディレクトリに公開鍵(~/.ssh/authorized_keys)を配置し、所有権をuser1に変更するか、su - user1これを実行する前に、user1のホームディレクトリ内の望ましくない誤った所有権を防止します。

mkdir -p /home/user1/.ssh
cat user1_key.pub >> /home/user1/.ssh/authorized_keys
# The next line is only needed if you have done the two above as 'root'
chown -Rv user1:user1 /home/user1/.ssh

キーペアの作成プロセスは、WindowsでもWinScpを使用して実行できます。参照用に here を参照してください。次に、公開キーと秘密キーに適切なアクセス許可が設定されていることを確認する必要があります。これは、ユーザーの秘密キーの場合は0600、ユーザーの公開キーの場合は0644です。 (注:キーをWindowsでフォーマットされたUSBスティックまたはドライブにコピーすると、キーの設定権限が失われるため、再確認してください。

ただし、このユーザーがパスワードでログインできるようにしたい場合は、/etc/ssh/sshd_configの次の行を変更できます。

AllowUsers mainuser user1

最後に次を追加します。

パスワードのみを有効にする場合:

Match User user1
    PubkeyAuthentication no
    PasswordAuthentication yes

両方を有効にするには:

Match User user1
    PubkeyAuthentication yes
    PasswordAuthentication yes

Sshのみを有効にするには、その部分を削除するか、次のように設定します。

Match User user1
    PubkeyAuthentication yes
    PasswordAuthentication no

質問に必ずしも関連するわけではないかもしれないが、一般的にSSHに関連するより多くの読み物は、 here を見つけることができます。 ssh-keygenコマンドのマンページ および sshコマンドのマンページ も参照してください。

@ Eliah-Kagan に感謝し、校正と修正と追加を提案してくれました。

4
Videonauth