Невозможно использовать scp с псевдонимом bash

14

Этот код не работает:

scp ~/Desktop/favicon.ico nameOfBashAlias:/public_html/mySite/templates/blog/

Псевдоним:

alias nameOfBashAlias='ssh myUsername@11.11.11.111'

Как мне решить эту проблему?

редактировать

Возможно ли что-то похожее на следующий код, например, запускать много экземпляров bash?

scp ~/Desktop/favicon.ico (nameOfBashAlias)>:/public_html/mySite/templates/blog/

Я не получил вышеуказанный код для работы.

Лео Леопольд Герц 준영
источник

Ответы:

22

Я бы не рекомендовал использовать псевдоним Bash для того, чего вы пытаетесь достичь. Вы можете просто ввести всю информацию в конфигурационный файл SSH и покончить с этим. Прочитайте справочную страницу, ssh_configесли вам интересно, откуда они берутся. Вы можете сделать некоторые аккуратные вещи сssh_config

Файл находится здесь ~/.ssh/config

Используйте ваш любимый редактор и создайте файл, а затем настройте его в соответствии с вашей ситуацией.

Host nameOfBashAlias
HostName 11.11.11.11
User myUsername
Port 22

Теперь вы можете выполнить следующую команду:

$ ssh nameOfBashAlias 

Бьюсь об заклад, вы не знали, насколько это все интегрировано. Теперь, когда у вас есть эта настройка, следующие команды также работают

$ scp /some/file nameOfBashAlias:/path/to/storage/location/ 

Больше не нужно помнить, что scp использует «-P» для порта, а ssh использует «-p». Этот псевдоним также работает в приложениях с графическим интерфейсом OS X, таких как Transmit.

OpenSSH получает данные конфигурации из следующих источников в следующем порядке:

  1. параметры командной строки
  2. файл конфигурации пользователя ~/.ssh/config
  3. общесистемный файл конфигурации /etc/ssh_config
Фон Лэндфрид
источник
Да, я полностью согласен с вашим. В настоящее время я тоже использую этот метод, поскольку он намного лучше синхронизируется с другими системами и другими инструментами.
Лео Леопольд Герц 준영
у меня не работает на MacOSX
Jabran Saeed
@JabranSaeed Пожалуйста, откройте новый вопрос или здесь вики сообщества в качестве ответа на ваш случай с частью информации о вашей ОС, версии, оболочке и т. Д. Пожалуйста, предоставьте также ссылку на ваш вызов здесь в комментарии. Эта тема актуальна для GNU scp.
Лео Леопольд Герц 준영
FWIW это, кажется, работает на OS X (по крайней мере, на моем, El Capitain 10.11.6)
Алекс W
5

scpне работает Bash. Вам нужно будет запустить это:

 scp ~/Desktop/favicon.ico 11.11.11.111:/public_html/mySite/templates/blog/

Если все, что у вас есть, это псевдоним и приведенный выше код невозможен для вас, попробуйте запустить его следующим образом:

nameOfBashAlias cat /public_html/mySite/templates/blog/ > ~/Desktop/favicon.ico

Таким образом, вы фактически вызываете sshи перенаправляете содержимое файла в файл на диске. Это может быть написано другим способом для загрузки.


источник
Первая команда должна быть scp ~ / Desktop / favicon.ico username@11.11.11.111: / public_html / mySite / templates / blog /
Лео Леопольд Хертц,
2

Псевдонимы заменяются, когда они являются первым словом команды bash. Ваш псевдоним появляется в начале третьего слова.

Я бы использовал переменную оболочки для этого.

blah='myUsername@11.11.11.111'
scp ~/Desktop/favicon.ico ${blah}:/public_html/mySite/templates/blog/

Кстати, я думаю, что ваш первоначальный псевдоним не должен содержать ssh. И последний пример кода содержит>, что тоже выглядит неправильно.

Андрей Паньков
источник
@mataap: Большое спасибо за ваш ответ!
Лео Леопольд Герц 준영
0

Нет, ваши примеры не будут работать, потому что это не так, как BASHпсевдонимы работают. Я предлагаю вам использовать переменную. Поместите это в ваш ~/.profileили ~/.bashrc[в зависимости от того, что вы используете]:
site="user@site.com"
тогда в вашем терминале это будет работать:
scp favicon.ico $site:/dir/


Или вы можете написать сценарий, как я делаю для моего iPod. в моем bashrc ipod=192.168.2.60, а затем в моем сценарии я source ~/.bashrcполучаю переменные в сценарии, а затем в сценарии: scp $1 $ipod
недостатком является то, что мне придется редактировать сценарий, чтобы сделать его рекурсивным. и я могу сделать только 1 файл. но когда мне нужен любой из них, я обычно использую scpпрямо из терминала!
~ Matt

Matt
источник