Назад | Перейти на главную страницу

изменить каталог scp по умолчанию в `~ / .ssh / config`

В scp Команда (openssh) принимает относительные пути как host:path/ которые относятся к домашнему каталогу на хосте. Я хочу изменить расположение каталога по умолчанию.

Например, я хотел бы создать ярлык псевдо-хоста в .ssh/config по линиям

Host bar
   hostName foo
   ## this directive does not actually exist:
   DefaultDirectory /home/me/some/path/here  

чтобы я мог написать

scp some_file bar:baz

вместо того

scp some_file foo:some/path/here/baz

Возможно ли это с помощью openssh?

Быстрое решение этой проблемы - создать символическую ссылку в вашем собственном домашнем каталоге на удаленном сервере на каталог, к которому вы хотите получить доступ:

ln -s /your/long/path/here/to/webapp1 ~/webapp1

Это позволит вам быстро получить доступ к папке следующим образом:

scp file foo:webapp1/

и разрешить расширение в будущем (более одной удаленной папки), и это не повредит другие программы. Я обнаружил, что это полезно на моих серверах, когда у меня несколько веб-сайтов, работающих на одном сервере, и мне нужно отправлять на них файлы (сейчас я в основном использую для этого git).

«Домашний» каталог определяется домашним каталогом пользователей, определенным в /etc/passwd файл. Я не верю, что какой-либо параметр opensshd переопределит это поведение. Вы можете изменить домашний каталог пользователя ... но я не думаю, что это то, что вы ищете.

Другими вариантами, конечно же, являются небольшой скрипт / функция вроде (при условии, что здесь bash):

myscp() {
  scp ${1%%:*}${SCP_DIR:?/tmp}/${1#*:}
}