Ответьте на да в сценарии удара

На самом деле, "dirname 0$" получит Вас путь к сценарию, но необходимо интерпретировать его немного:

$ cat bash0
#!/bin/bash
echo \$0=$0
dirname $0
$ bash0    # "." appears in PATH right now.
$0=./bash0
.
$ ./bash0
$0=./bash0
.
$ $PWD/bash0
$0=/home/00/bediger/src/ksh/bash0
/home/00/bediger/src/ksh
$ $PWD/../ksh/bash0
$0=/home/00/bediger/src/ksh/../ksh/bash0
/home/00/bediger/src/ksh/../ksh
$ ../ksh/bash0
$0=../ksh/bash0
../ksh

Необходимо подготовиться обрабатывать "." как имя каталога при некоторых общих обстоятельствах. Я экспериментировал бы немного, поскольку я помню dirname встроенное к ksh выполнение вещей немного по-другому, когда"." появляется в ПУТИ.

25
16.08.2011, 22:00
4 ответа

Добавьте следующее к Вашему ~/.ssh/config файл:

Host github.com
    StrictHostKeyChecking no

Что-либо с помощью открытого-ssh клиента для установления удаленной оболочки (с клиентом мерзавца делает) должно пропустить ключевые проверки на github.com.

Это - на самом деле плохая идея начиная с любой формы пропуска проверок (поражаете ли Вы автоматически да или пропускаете проверку во-первых), создает комнату для человека в среднем компромиссе безопасности. Лучший путь состоял бы в том, чтобы получить и проверить цифровой отпечаток и сохранить его в known_hosts файл прежде, чем должным быть запустить некоторый скрипт, который автоматически соединяется.

21
27.01.2020, 19:40
  • 1
    С решительным предпочтением, чтобы получить и проверить цифровой отпечаток и сохранить его в known_hosts файл прежде. –  Gilles 'SO- stop being evil' 17.08.2011, 02:27
  • 2
    Большое спасибо за Ваш ответ, я закончил после подхода добавления отпечатка пальца в known_hosts. Это похоже на более безопасный :) –  Rafael 19.08.2011, 03:08
  • 3
    , О, я использую марионетку, чтобы сделать это. Если кто-то интересуется использованием, его вот рецепт: gist.github.com/1155725 –  Rafael 19.08.2011, 03:49

yes выводы y. Приемные потребности ключа RSA yes. Вы могли попробовать yes yes | git clone git@github.com:repo/repoo.git так yes выводы yes вместо y.

5
27.01.2020, 19:40
  • 1
    По некоторым причинам это не работало с клоном мерзавца для меня. –  Matt V. 16.12.2011, 01:17
  • 2
    Ни один это работало на меня. Также echo "yes" | ... не делает. Я думаю git не принимает передачу по каналу. Возможно, только в некоторой версии? –  udondan 16.02.2015, 12:19

Я столкнулся с этой проблемой прежде. Хотя это было на машине Windows, но мы должны были использовать ssh для соединения с удаленным хостом. Мы столкнулись с той же проблемой, которую всегда приводило к сбою первое подключение, потому что это не распознает ключи.

Я решил его путем соединения вручную и нахождения ключа реестра и импорта его в начале сценария. В Linux это должно быть то же общее представление: Вы хотите добавить этот сервер к списку доверяемых хостов так, чтобы ssh не спрашивал Вас при доверии ему каждый раз.

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

1
27.01.2020, 19:40

Запуск ssh-keyscan -H github. com >> ~ / .ssh / known_hosts перед клонированием добавит ключ и предотвратит появление запроса.

Конечно, этот подход также уязвим для атаки MITM.

4
27.01.2020, 19:40

Теги

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