私はファイルを転送するスクリプトを持っています。私はそれを実行するたびに、別のホストに接続する必要があります。そのため、私はホストをパラメータとして追加しています。スクリプトは次のように実行され〜/ .ssh/configに保存されている資格情報を使用せずにsshでrsyncします
:./transfer.sh <hostname>
#!/bin/bash -evx
SSH="ssh \
-o UseRoaming=no \
-o UserKnownHostsFile=/dev/null \
-o StrictHostKeyChecking=no \
-i ~/.ssh/privateKey.pem \
-l ec2-user \
${1}"
files=(
file1
file2
)
files="${files[@]}"
# this works
$SSH
# this does not work
rsync -avzh --stats --progress $files -e $SSH:/home/ec2-user/
# also this does not work
rsync -avzh --stats --progress $files -e $SSH [email protected]$1:/home/ec2-user/
私はきちんと$SSH
に保存されているSSH接続で接続することができますが、rsyncの接続の試みがあるため、間違ったキーの失敗:
Permission denied (publickey).
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(226) [sender=3.1.2]
何rsync接続の正しい構文ですか?
あなたは正しかったが、$ SSHをカプセル化する必要があります。あなたが正しい方向に私を指摘して以来、この答えを正しいものとして受け入れる。 – mles