ssh-copy-idなしでユーザーにSSHキーを追加する

ssh-copy-idなしでユーザーにSSHキーを追加する

ホストに接続したい場合、現在キーボードとモニターが接続されている場合は、そのユーザーにリモートで接続できるようにキーをユーザーにコピーする方法は?デフォルトではssh-copy-idと同じことをしたいのですが、まずssh経由で接続する必要はありません。

答え1

キーは以下のテキストファイルに保存されます$HOME/.ssh/authorized_keys

新しいキーを追加するには、キーの* .pubファイルの内容をファイルの新しい行にコピーします。

また、いくつかの追加情報を提供します。SSHウェブサイトから

答え2

たとえば、次のコマンドを使用します。

scp name_of_public_key.pub root@<remote IP address>:</home/user_home_folder or /root>

次に、リモートホストにSSHを介して接続し、ユーザーのホームフォルダに移動します。

cd

または

cd /home/name_of_user

次に、次のように入力します。

cat name_of_public_key.pub >> .ssh/authorized_keys

公開鍵はauthorized_keysファイルの末尾に追加されます。公開鍵は秘密ではありません。

答え3

このワンライナーはプロセスを自動化します。

cat .ssh/id_ecdsa.pub | xargs -i ssh NameOfServer "echo {} >> .ssh/authorized_keys"

スクリプトはランダム-iです{}

.sshただし、ターゲットコンピュータにフォルダやファイルがないと失敗するため、authorized_keys次のスクリプトはbash条件を使用して問題を解決します。

cat .ssh/id_ecdsa.pub | xargs -i ssh $1 "if [[ ! -e .ssh/authorized_keys ]]; 
then mkdir .ssh; touch .ssh/authorized_keys; fi; echo {} >> .ssh/authorized_keys"

ifステートメントは、ターゲットディレクトリが存在することを確認して終了します。またはターゲットディレクトリを作成して終了します。

関連情報