web-dev-qa-db-ja.com

すべてのユーザーにパスワードなしのSSHを設定する方法

次の手順を実行して、1人のユーザーにパスワードなしのSSHを設定できます。

1)〜/ .sshでローカルマシンのRSAキーペアを生成します

2)ローカルマシンの公開鍵をリモートマシンの〜/ .ssh/authorized_keysにコピーします

しかし、allユーザーに対してこのアクションを実行する方法はありますか?おそらく、/ root/.sshなどで上記と同じ手順を実行しますか?または、rootユーザーがキーをデプロイし、すべてのユーザーの〜/ .sshディレクトリにあるauthorized_keyリストを変更するための良い方法はありますか?

ありがとう。

4
tomocafe

すべてのユーザーに単一のリモートホストへのパスワードなしのアクセスを提供する場合、OpenSSHは、サーバーに対して認証するクライアントのホストキーであるホストベースの公開キー認証と/etc/ssh/shosts.equivをサポートします。ユーザーを承認します。

ここにそれを構成する方法に関する良いガイドがあります: http://en.wikibooks.org/wiki/OpenSSH/Cookbook/Host-based_Authentication

2
djm

このようなものはどうですか?

for u in $USERLIST; do
    su $u
    ssh-keygen [options] -f /home/$u/.ssh/id_rsa
    scp /home/$u/.ssh/id_rsa.pub $REMOTEHOST:/home/$u/.ssh/authorized_keys
    exit
done

もちろん、これにはscpの多くのパスワードを入力することが含まれます。パスワードの入力を回避するためにすべてをrootとして実行できますが(rootのパスワードなしのsshが設定されていると仮定)、すべてchownする必要があります。

for u in $USERLIST; do
    ssh-keygen [options] -f /home/$u/.ssh/id_rsa

    # assuming "users" is the common group on the system
    chown $u:users /home/$u/.ssh/id_rsa

    # use -a to preserve ownership
    rsync -av /home/$u/.ssh/id_rsa.pub $REMOTEHOST:/home/$u/.ssh/authorized_keys
done

そしてもちろん、完了したら、各ユーザーのホームディレクトリと.sshディレクトリに(両方のマシンで)正しいアクセス許可があることを確認する必要があります。

0
dg99