注意:服务器不共享相同的密码,但我将首先设置无密码登录。
这是用例,我需要在我的中逐步完成以下步骤deploy.sh
:
- 将文件 scp 到远程服务器的
/opt/bin
目录,这需要 root 权限 - 之后,ssh 进入远程服务器并运行
sudo install.sh
,这也需要 root 权限 - 服务器不允许以 root 身份登录
我注意到有方法[1]可以ssh
运行sudo命令,但是它似乎不起作用scp
。
这确实让我很困扰...
[1]https://stackoverflow.com/questions/10310299/proper-way-to-sudo-over-ssh
顺便说一句:我认为其中一种可能的方法是将文件 scp 到普通目录,然后通过 ssh 运行sudo mv * /opt/bin; sudo install.sh
。
答案1
把山带给先知?
ssh user@remote "sudo scp -r user@local:/path/to/files /opt/bin"
这似乎是一项很大的特权,但却几乎看不到密码,这让我很紧张。