私がしたいことは次のとおりです。
リモートホストにSSHで接続します。
ログインしたユーザーのAuthorized_keysファイルにあるpublic_keysを、すべてのユーザーの.ssh/authorized_keysファイルに追加します。
1行にパスワードを使用してsudo&catを試すのに問題があります。この問題を解決する方法を知っている人はいますか?
私がこれを達成するために努力する方法の一つです。
ssh -t $userHost -p $remotePort \
"for localUser in $(ls /home | grep -v $USER); \
do sudo mkdir -p /home/$localUser/.ssh && \
cat /home/$USER/.ssh/authorized_keys | sudo tee --append \
/home/$localUser/.ssh/authorized_keys > /dev/null; done"
しかし、sudoコマンドはsshコマンドでは機能しないようです。 sudoers ファイルの NOPASSWD はオプションではありません。
ベストアンサー1
sudo
パスワードを使用するには、tty
リモートコマンドの実行は割り当てられませんtty
。したがって、許可しないと機能しませんNOPASSWD
。
代わりに、スクリプトをシェルとして使用し、コマンドを実行するスクリプトを使用してリモートサーバーに強制アカウントを持つことを検討してください。キーベース認証を使用して強制アカウントにログインすると、パスワードを2回入力せずにスクリプトを自動的に実行できます。スクリプトの最後の行からexit
ログアウトコマンドを実行します。これは基本的に対話型セッションなので、tty
パスワードを入力でき、入力する必要があるキーストロークの数は変わりません。
私が知らないsudoの新機能がなければ、他の方法は考えられません。