ssh-соединение с проблемой клиента OS X

Я пытаюсь настроить соединение ssh из окна OS X, предоставленного Travis CI, в git-over-ssh на github.com.

Ничего необычного: мой скрипт принимает закрытый ключ с ключом без пароля, декодирует его и настраивает следующую оболочку git ssh для обеспечения использования ключа:

  • bash - нечувствительность к регистру переменной
  • Xmove не может подключиться к серверу X11 через пересылку SSH X
  • Существуют ли какие-либо команды, которые позволят мне скопировать последнюю строку предыдущего вывода в буфер обмена?
  • Каковы преимущества использования Tmux в любое время?
  • eth0 не настроен автоматически
  • Файл пропадает в течение короткого периода времени после сохранения его с помощью VIM
  • unset SSH_AGENT_PID SSH_AUTH_SOCK # Setting up bot key echo "$BOT_SSH_KEY" | base64 --decode >$HOME/bot_id chmod 600 $HOME/bot_id # Setting up ssh wrapper cat >$HOME/git-ssh <<__EOF__ #!/bin/sh -efx ssh -vv -i "$HOME/bot_id" "\$@" __EOF__ chmod a+x $HOME/git-ssh export GIT_SSH="$HOME/git-ssh" 

    Затем он пытается выполнить ssh-authenticated git clone, который, согласно журналам, приводит к вызову клиента ssh. Тот же самый сценарий работает на экземплярах Ubuntu Linux, предоставленных Travis, и не работает в экземплярах OS X:

    • Журнал успеха в Linux
    • Журнал сбоев в OS X

    Анализируя журналы, они выглядят очень похожими, ожидайте:

    • Ubuntu использует OpenSSH_6.6.1, OS X использует OpenSSH_6.9p1 => kex_parse_kexinit списки немного другого набора доступных шифров
    • Ubuntu использует /home/travis/bot_id , использует OS X /Users/travis/bot_id
    • OS X выдает дополнительные предупреждения о том, что вы не можете увидеть открытую часть ключа (возможно, не очень большое дело):

       debug1: key_load_public: No such file or directory 
    • Ubuntu преуспевает после:

       debug1: Server host key: RSA 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48 debug1: Host 'github.com' is known and matches the RSA host key. debug1: Found key in /home/travis/.ssh/known_hosts:2 Warning: Permanently added the RSA host key for IP address '192.30.253.112' to the list of known hosts. debug1: ssh_rsa_verify: signature correct debug2: kex_derive_keys debug2: set_newkeys: mode 1 debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug2: set_newkeys: mode 0 debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug2: service_accept: ssh-userauth debug1: SSH2_MSG_SERVICE_ACCEPT received debug2: key: /home/travis/bot_id ((nil)), explicit debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Trying private key: /home/travis/bot_id debug1: key_parse_private2: missing begin marker debug1: read PEM private key done: type RSA debug2: we sent a publickey packet, wait for reply debug1: Authentication succeeded (publickey). Authenticated to github.com ([192.30.253.112]:22). ... 
    • OS X не работает:

       debug1: Server host key: ssh-rsa SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 debug1: read_passphrase: can't open /dev/tty: Device not configured debug1: permanently_drop_suid: 501 ssh_askpass: exec(/usr/X11R6/bin/ssh-askpass): No such file or directory Host key verification failed. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 

    Насколько я понимаю, клиент ssh должен по крайней мере (1) подключиться, (2) проверить ключи и идентификаторы сервера, (3) начать пробовать различные методы auth. Из того, что я вижу, OS X получает соединение, но затем даже не пытается выполнить какие-либо проверки (или жалобы на проверку RSA не удалось или что-то еще), но каким-то образом обходит все предварительно заданные методы auth (т.е. ключ без пароля) и напрямую переходит «интерактивно запрашивать информацию аутентификации» method =>, а затем сбой, поскольку он явно отключен, поскольку CI не является интерактивным сервером.

    Любые идеи, что не так с OS X ssh и как заставить его работать, или, по крайней мере, добавить отладку? По мере моих догадок, вероятно, это как-то бесшумно терпит неудачу в проверке подлинности сервера, но я понятия не имею, как отлаживать это (особенно учитывая, что у меня нет ящиков OS X, которые можно попробовать в интерактивном режиме).

  • Как распознать вредоносные пакеты AUR
  • Pulseaudio не регистрирует профиль HFP на сервере SDP
  • i3wm: более 10 рабочих пространств с двойным ключом-модификатором?
  • Почему мой SSH-аутентификационный сокет отличается от man-страниц?
  • Изменить / dev / sd * для Linux Linux установить?
  • Звуковой сигнал командной строки для одновременного воспроизведения и записи
  • One Solution collect form web for “ssh-соединение с проблемой клиента OS X”

    Оказалось, что действительно проблема заключалась в содержании файла .ssh/known_hosts . Travis ssh использует довольно много параметров по умолчанию, поэтому он будет пытаться запрашивать подтверждение на каждом новом ключе, что, в свою очередь, приведет к этому неясному сообщению об ошибке.

    На Ubuntu команда Travis поставляет пресетный файл .ssh/known_hosts , который содержит 5 строк с популярными ключами github:

     github.com,192.30.252.129 ssh-dss AAAAB3NzaC1kc3MAAACBANGFW2P9xlGU3zWrymJgI/lKo//ZW2WfVtmbsUZJ5uyKArtlQOT2+WRhcg4979aFxgKdcsqAYW3/LS1T2km3jYW/vr4Uzn+dXWODVk5VlUiZ1HFOHf6s6ITcZvjvdbp6ZbpM+DuJT7Bw+h5Fx8Qt8I16oCZYmAPJRtu46o9C2zk1AAAAFQC4gdFGcSbp5Gr0Wd5Ay/jtcldMewAAAIATTgn4sY4Nem/FQE+XJlyUQptPWMem5fwOcWtSXiTKaaN0lkk2p2snz+EJvAGXGq9dTSWHyLJSM2W6ZdQDqWJ1k+cL8CARAqL+UMwF84CR0m3hj+wtVGD/J4G5kW2DBAf4/bqzP4469lT+dF2FRQ2L9JKXrCWcnhMtJUvua8dvnwAAAIB6C4nQfAA7x8oLta6tT+oCk2WQcydNsyugE8vLrHlogoWEicla6cWPk7oXSspbzUcfkjN3Qa6e74PhRkc7JdSdAlFzU3m7LMkXo1MHgkqNX8glxWNVqBSc0YRdbFdTkL0C6gtpklilhvuHQCdbgB3LBAikcRkDp+FCVkUgPC/7Rw== github.com,192.30.252.129 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ== gist.github.com,192.30.252.141 ssh-dss AAAAB3NzaC1kc3MAAACBANGFW2P9xlGU3zWrymJgI/lKo//ZW2WfVtmbsUZJ5uyKArtlQOT2+WRhcg4979aFxgKdcsqAYW3/LS1T2km3jYW/vr4Uzn+dXWODVk5VlUiZ1HFOHf6s6ITcZvjvdbp6ZbpM+DuJT7Bw+h5Fx8Qt8I16oCZYmAPJRtu46o9C2zk1AAAAFQC4gdFGcSbp5Gr0Wd5Ay/jtcldMewAAAIATTgn4sY4Nem/FQE+XJlyUQptPWMem5fwOcWtSXiTKaaN0lkk2p2snz+EJvAGXGq9dTSWHyLJSM2W6ZdQDqWJ1k+cL8CARAqL+UMwF84CR0m3hj+wtVGD/J4G5kW2DBAf4/bqzP4469lT+dF2FRQ2L9JKXrCWcnhMtJUvua8dvnwAAAIB6C4nQfAA7x8oLta6tT+oCk2WQcydNsyugE8vLrHlogoWEicla6cWPk7oXSspbzUcfkjN3Qa6e74PhRkc7JdSdAlFzU3m7LMkXo1MHgkqNX8glxWNVqBSc0YRdbFdTkL0C6gtpklilhvuHQCdbgB3LBAikcRkDp+FCVkUgPC/7Rw== gist.github.com,192.30.252.141 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ== ssh.github.com,192.30.252.149 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ== 

    Однако в OS X этот файл не существует, что вызывает ошибку. Это простейшее решение состоит в том, чтобы просто создать файл с такими строками в OS X из сценария оболочки.

    Я поднял вопрос с командой Трэвиса для этого.

    Linux и Unix - лучшая ОС в мире.