SCP как другой пользователь

Наивный подход Unix:

awk '/Order|Package/' conf/*.conf |           # get your usual output
    paste - - |                               # convert two lines to one
        sort -n -k2,2 |                       # sort numerically
            awk '{print $1,$2;print $3,$4}'   # re-print in two columns
2
11.09.2019, 15:01
1 ответ

Теоретически возможно при использовании переключателя-Sс конструкцией вида:

scp -S "script.sh" /local/file userA@example.com:/remote/file 

Там, где script.shвыполняет ssh, будут все аргументы, которые он получает, за исключением префикса scpс sudo. И это сработает только в том случае, если вы убедитесь, что sudoне запрашивает пароль. Что на самом деле является частью моего текущего нерешенного вопроса о Super User:
Разрешено автоматическое выполнение команд от имени пользователя root в Linux с использованием SSH .


Другой вариант, если у вас есть локальные подключения к хосту, разрешенные для «пользователя B» на удаленном сервере, вы можете использовать-J(переход )переключатель (, поддерживаемый начиная с OpenSSH 8.0 ), например:

scp -J userA@example.com /local/file userB@localhost:/remote/file 

В более старых версиях (, но не ниже 7.3 )вы можете использовать директивуProxyJump:

scp -o ProxyJump=userA@example.com /local/file userB@localhost:/remote/file 

Существуют и другие параметры, такие как ProxyCommandили переадресация портов, которые вы можете использовать даже в более старых версиях OpenSSH. Они описаны в Поддерживает ли OpenSSH вход в систему с несколькими переходами? .

1
27.01.2020, 22:16

Теги

Похожие вопросы