リモートサーバーの認証されたキーに公開キーを追加し、いくつかのコマンドを実行します。

リモートサーバーの認証されたキーに公開キーを追加し、いくつかのコマンドを実行します。

コマンド自体が機能します。

ssh user@remote 'cat >>/home/user/somedir/.ssh/authorized_keys' <~/.ssh/id_rsa.pub

だから私はこれを私のスクリプトに統合しようとしました。

#! /bin/bash

ssh user@remote 'cat >>/home/user/somedir/.ssh/authorized_keys' <~/.ssh/id_rsa.pub << EOF
    touch hello
    mkdir /test/morning
    cp hello /test/morning
EOF 

目的は、自分のファイルをローカルシステムからリモートホストにid_rsa.pubコピーし、別のコマンドを実行することです。ただし、上記のスクリプトを使用するコマンドは、次のようにauthorized_keysファイルにエコーされます。authorized_keys

$ cat /home/user/somedir/.ssh/authorized_keys 
    touch hello
    mkdir /test/morning
    cp hello /test/morning
EOF 

誰でも助けることができますか?

ベストアンサー1

探しているようですが、

cat ~/.ssh/id_rsa.pub | ssh user@remote "mkdir /home/user/somedir/.ssh; \
cat >> /home/user/somedir/.ssh/authorized_keys; touch hello; mkdir /test/morning; \
cp hello /test/morning"

私は使用することを好みますssh-copy-id。リモートアドレスを指定すると、authorized_keysリモートシステムのファイルに公開鍵が追加されます。

$ ssh-copy-id user@remote

おすすめ記事