Мне регулярно приходится развертывать файлы через scp. Проблема в том, что пользователь на удаленном компьютере (например, tomcat) не соответствует пользователю, с которым я вхожу в систему (например, mylogin). И почти всегда я не могу войти в систему напрямую с удаленным пользователем (отключено администратором)
Предположим следующее: я хочу развернуть файл в папке webapps tomcats, но раньше могу сделать это только через sudo -U tomcat на удаленном компьютере.
В данный момент я делаю что-то. как это:
scp file.war mylogin@remotehost.com:/home/mylogin/tmp/
ssh mylogin@remotehost.com 'sudo -U tomcat cp /home/mylogin/tmp/file.war /tomcat/webapps/'
Есть ли лучшее решение без временной папки? Я имею в виду, возможно ли это всего лишь одним копированием с sudo "промежуточным"? Можно ли это сделать с помощью перенаправления портов?
Этот вопрос связан с этот
Добавьте свой открытый ключ в файл authorized_keys пользователя tomcat. Это позволит вам использовать ssh как tomcat:
scp file.war tomcat@remotehost.com:/tomcat/webapps/
Попросите вашего администратора настроить пользователя для Доступ только по SFTP (это будет не позволяет вам использовать SSH, "нажав новую конфигурацию", что бы это ни значило), и установить ваш ключ для вас, пользователю в той же группе Unix, что и tomcat, и сделать каталог пользователя tomcat g+w
. Тогда вы бы сделали что-то вроде
$ scp myfile upload@remotehost:~tomcat/
Вот что такое групповая система Unix для, и это то, что все делали до того, как тупицы из Red Hat по какой-то неизвестной причине решили, что у каждого пользователя должна быть своя собственная группа.