次の手順を実行して、1人のユーザーにパスワードなしのSSHを設定できます。
1)〜/ .sshでローカルマシンのRSAキーペアを生成します
2)ローカルマシンの公開鍵をリモートマシンの〜/ .ssh/authorized_keysにコピーします
しかし、allユーザーに対してこのアクションを実行する方法はありますか?おそらく、/ root/.sshなどで上記と同じ手順を実行しますか?または、rootユーザーがキーをデプロイし、すべてのユーザーの〜/ .sshディレクトリにあるauthorized_keyリストを変更するための良い方法はありますか?
ありがとう。
すべてのユーザーに単一のリモートホストへのパスワードなしのアクセスを提供する場合、OpenSSHは、サーバーに対して認証するクライアントのホストキーであるホストベースの公開キー認証と/etc/ssh/shosts.equivをサポートします。ユーザーを承認します。
ここにそれを構成する方法に関する良いガイドがあります: http://en.wikibooks.org/wiki/OpenSSH/Cookbook/Host-based_Authentication
このようなものはどうですか?
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ディレクトリに(両方のマシンで)正しいアクセス許可があることを確認する必要があります。