当前的写法是,
rsync -vzrtopg --progress -e ssh --delete [email protected]/home/dockertls.sh /home/
由于我使用的 frc 穿透,导致端口不是 22,改写成下面这样,还是不行
rsync -vzrtopg --progress -e ssh -p 5551 --delete [email protected]/home/dockertls.sh /home/
,求大佬教教
1
XiaoxiaoPu 2021-01-30 14:09:08 +08:00
把 -e 后面的参数用引号包起来,如下
-e 'ssh -p 5551' |
2
cryboy007 OP @XiaoxiaoPu 谢谢,可以了
|
3
cryboy007 OP ```shell
#!/usr/bin/expect set timeout 30 set password xxxx #spawn ssh -l root znsd.top -p 5551 spawn rsync -vzrtopg --progress -e 'ssh -p 5551' [email protected]:/home/dockertls.sh /home/ #>/dev/null 2>&1 expect "*password*" {send "$password\r"} interact ``` 现在,我想实现自动输入 ssh 密码验证,但是当我使用 expect 的时候,报这个错误 Unexpected remote arg: [email protected]:/home/dockertls.sh rsync error: syntax or usage error (code 1) at main.c(1343) [sender=3.1.2] spawn_id: spawn id exp6 not open while executing "interact" (file "/home/xxx.sh" line 8) 试过不自动输入密码,是可以的. |
4
cryboy007 OP @XiaoxiaoPu 麻烦大佬了 /又有一个小问题...
|
5
eason1874 2021-01-31 07:20:47 +08:00
ssh 不能传参输入密码,但可以通过 -i 指定密钥文件位置。如果是自动化脚本,考虑取消公钥检查,不取消第一次连接目标主机会要求确认公钥指纹。比如:
ssh -p 5551 -i /my/key.pem -o StrictHostKeyChecking=no |
6
internelp 2021-01-31 10:03:00 +08:00
如果需要长期自动同步,可以考虑启动 rsync 服务。
|