我经常必须通过scp部署东西。 问题是远程机器(例如tomcat)上的用户与我login的用户(例如mylogin)不匹配。 几乎总是我不能直接login远程用户(禁用pipe理员)
假设如下:我想部署一个文件到tomcats的webapps文件夹中,但是只能通过远程机器上的“sudo -U tomcat”来完成。
此刻我正在做某事。 喜欢这个:
scp file.war [email protected]:/home/mylogin/tmp/ ssh [email protected] 'sudo -U tomcat cp /home/mylogin/tmp/file.war /tomcat/webapps/'
没有临时文件夹有没有更好的解决scheme? 我的意思是,是否有可能与一个sudo“中间”只有一个复制? 这可以通过portforwarding完成吗?
这个问题与此有关
让你的pipe理员设置一个用户进行SFTP专用访问 (这不会让你通过“推送一个新的configuration”来使用SSH,无论这意味着什么),并把你的密钥安装到同一个Unix组的用户tomcat,并将tomcat用户的目录设为g+w 。 那么你会做类似的事情
$ scp myfile upload@remotehost:~tomcat/
这就是Unix组系统的用处,这是每个人在Red Hat的骨头之前做出的决定,原因是每个用户都应该拥有自己的组。
将你的公钥添加到tomcat用户的authorized_keys文件中。 这将允许你ssh作为tomcat:
scp file.war [email protected]:/tomcat/webapps/