
私が作成している一部のLinux VMでユーザーアカウントの作成を高速化したいと思い、新しいユーザーや~/.ssh/authorized_keys
ファイル~/.ssh/authorized_keys2
を作成するプロセスを簡素化できるかどうか疑問に思います。
私の手動プロセスはおおよそ次のとおりです(新しいユーザーとしてログイン)。
ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
touch ~/.ssh/authorized_keys
chmod go-rwx ~/.ssh/authorized_keys
echo '... me@machine' >> ~/.ssh/authorized_keys
touch
Bashコマンド、標準GNUコマンド、またはUbuntuに簡単にインストールされるプログラムを使用して、およびを単一のコマンドchmod
にecho
圧縮する方法はありますか?
部分的に、仮想マシンでsudo機能を使用して初期ユーザーとして実行できるシェルスクリプトを作成できるように、これを1つのコマンドに簡素化したいと思います。
それは次のとおりです。
sudo su - me -c 'ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa'
echo '... me@machine' | sudo su - me -c 'xyz 0600 ~/.ssh/authorized_keys'
xyz
一度にファイルを作成し、権限を設定し、作成する仮想コマンドはどこにありますか?
答え1
気づく
touch ~/.ssh/authorized_keys
chmod go-rwx ~/.ssh/authorized_keys
echo '... me@machine' >> ~/.ssh/authorized_keys
いかなる特典も提供しません。
echo '... me@machine' >> ~/.ssh/authorized_keys
chmod go-rwx ~/.ssh/authorized_keys
権限の確認開くファイルを読み書きする時ではありません。
chmod
したがって、コンテンツを追加する前や後であっても構いません。これを行うまで、他の人はファイルを開くことができますが、chmod
ファイルを読むにはコンテンツを追加するのを待つ必要があります。
ここでは、ファイルが最初から正しい権限を持っていることを確認したいと思います。
sudo -Hu user sh -c '
umask 077 && printf "%s\n" "$1" >> ~/.ssh/authorized_keys
' sh "$key user@host"
-H
ホームディレクトリを強制的$HOME
に設定してuser
(sudo
デフォルトではそうしないように設定されているシステムでも)、そのディレクトリのsh
拡張を作成します~
。~user
代わりに使用することもできます~
。
答え2
以下のコード行を使用して、新しく作成したアカウントに既存のキーを入力します。既存のファイルの内容を追加するように簡単に調整できます。
sudo -Hu user /bin/sh -ec 'umask 077; mkdir -p -- ~/.ssh; cat > ~/.ssh/authorized_keys' <<EOF
id-rsa AAAA...AA [email protected]
EOF
答え3
あなたは調査することができますssh-copy-id
答え4
実際にinstall
ここでヘルプを見つけることができます。
install -m 600 /dev/null ~/.ssh/authorized_keys
touch
との組み合わせを置き換えますchmod
。
それから
ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
Authorized_keysにキーを追加します。必要な場所に追加してくださいsudo
。