3

Несколько дней назад SSH перестал работать.

  1. Может ли кто-нибудь помочь мне заставить работать SSH (раньше)
  2. Помогите мне разобраться в папке разработчиков UNIX
  3. Есть ли PUTTY, как клиенты Mac?

Когда я пытаюсь войти через SSH, я получаю следующее сообщение:

PTY allocation request failed on channel 0
stdin: is not a tty
fatal: unrecognized command ''
Connection to 74.52.61.194 closed.

Поиск в Интернете показал мне, что может быть что-то не так с /dev /std / folder.
Но я обнаружил скрытые папки и не могу найти папку /dev / (есть псевдоним dev, но Mac утверждает, что это неработающая ссылка), то же самое, когда я ищу его с помощью других инструментов, таких как Houdini. Я мог бы войти в него, хотя, так что я запутался, что случилось с этой папкой.

Существуют ли какие-либо инструменты, которые могут сохранить мои настройки SSH, чтобы мне не приходилось каждый раз вводить имя пользователя @ adrees, пароль, путь, которые все длинные и сложные?

Не ища клиента типа Filezilla, их много. Ищите командную строку, такую как putty, которая позволяет мне использовать bash на удаленном клиенте.

Нахожусь на Macbook Pro, последней версии Tiger.

РЕДАКТИРОВАТЬ: пытались SSH с -v, вот вывод, если он может помочь знающему супер-пользователю?

OpenSSH_5.2p1, OpenSSL 0.9.8l 5 Nov 2009
debug1: Reading configuration data /etc/ssh_config
debug1: Connecting to 74.52.61.194 [74.52.61.194] port 22.
debug1: Connection established.
debug1: identity file /Users/me/.ssh/identity type -1
debug1: identity file /Users/me/.ssh/id_rsa type 1
debug1: identity file /Users/me/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.3
debug1: match: OpenSSH_4.3 pat OpenSSH_4*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.2
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host '74.52.61.194' is known and matches the RSA host key.
debug1: Found key in /Users/me/.ssh/known_hosts:2
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Trying private key: /Users/me/.ssh/identity
debug1: Offering public key: /Users/me/.ssh/id_rsa
debug1: Remote: Forced command: perl -e 'exec qw(git-shell -c), $ENV{SSH_ORIGINAL_COMMAND}'
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug1: read PEM private key done: type RSA
debug1: Remote: Forced command: perl -e 'exec qw(git-shell -c), $ENV{SSH_ORIGINAL_COMMAND}'
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Authentication succeeded (publickey).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
PTY allocation request failed on channel 0
stdin: is not a tty
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
fatal: unrecognized command ''
debug1: channel 0: free: client-session, nchannels 1
Connection to 74.52.61.194 closed.
Transferred: sent 2448, received 2856 bytes, in 0.4 seconds
Bytes per second: sent 6027.2, received 7031.8
debug1: Exit status 0

2 ответа2

3

Вы должны использовать Terminal.app для выполнения SSH, а для хостов, к которым вы регулярно подключаетесь, вы создаете псевдонимы и настраиваете ключи шифрования, чтобы вы могли быстрее входить в систему.

Чтобы создать псевдоним:

alias gohost='ssh myname@myhost.net'

Конечно, называйте псевдоним чем-то полезным для вас, вместо gohost .

Чтобы создать ключ ssh, вы делаете:

ssh-keygen

Затем следуйте инструкциям, примите значения по умолчанию, если вы не знаете, что делаете. Оставьте пустую парольную фразу, если вы хотите войти без пароля, если вы хотите сохранить пароль, просто пропустите ssh-keygen и используйте gohost для подключения к вашему хосту.

Преимущество ключей ssh заключается в том, что вы можете выполнять scp (безопасное копирование) и rsync через ssh без необходимости повторного ввода пароля, разумеется, вы хотите убедиться, что ваша учетная запись на Mac безопасна, поэтому что только вы можете использовать эти ключи (они связаны с вашей учетной записью и хранятся в папке ~/.ssh .)

Если вы создаете ssh-ключ, вам нужно скопировать открытый ключ в ваш дом на сервере, поэтому давайте скопируем открытый ключ в буфер обмена.

cat ~/.ssh/id_rsa.pub | pbcopy

(pbcopy принимает стандартный ввод и помещает его в буфер обмена Mac, pbpaste делает обратное и отправляет содержимое буфера обмена на стандартный вывод, но только текст.)

Затем подключитесь к хосту ssh и выполните:

cat >> ~/.ssh/authorized_keys

Вставьте ключ из буфера обмена, нажмите Enter и Ctrl-D, выйдите из хоста, а затем попробуйте снова подключиться, если все прошло успешно, вы просто снова окажетесь в приглашении хоста, без необходимости ввода пароля.

Почему ваш SSH не работает?

Глядя на ваш вывод отладки, есть пара вещей, которые не ясны. Прежде всего, похоже, что с вашей установкой ssh все в порядке.

Сообщение об ошибке также предполагает, что /dev/pty не существует, проверьте это (не в Finder) ...

Но похоже, что это ошибка сервера, вы пробовали ssh на другой сервер?

Папка разработчика

Если вы не можете сделать sudo ls /dev значит что-то не так с вашей системой.

Чтобы объяснить, что такое /dev , Unix (поверх которой построен OS X) использует /dev для доступа к устройствам, стандартному вводу, стандартному выводу, жестким дискам, дискам CD / DVD и т.д.

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

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

2

Вот что сработало для меня.
Он написан, чтобы помочь другим, кто сталкивается с той же проблемой, но это не "правильный" ответ, так как я уверен, что он не должен был работать. Прочитайте ветку ответа Сломодзё, чтобы получить полное изложение.

  1. Симптом: SSH на Mac перестал работать с моим сервером Site5. Я смог SSH к другим серверам без проблем.
    Проблема: SSH автоматически отправляет любые ключи в файлы .ssh/id_rsa или .ssh/id_dsa.
    При настройке учетных записей GitHub эти файлы обычно создаются.
    Site5 получал и копил нераспознанные ключи GitHub.
    Решение: я переместил закрытый ключ GitHub из .ssh/id_rsa в другой файл (например, .ssh/GitHub) и добавил файл конфигурации для направления SSH к этому ключу. Как только ключ GitHub не был перенесен на сайт5, все работало.
    С точки зрения безопасности это звучит как большое дело, так как иначе было бы легко украсть мои ключи. (Я не понимаю SSH, поэтому могу упустить что-то очевидное.)

  2. Папка dev не имела никакого отношения к моей проблеме, которая была на стороне сервера.
    Тем не менее, папку dev лучше всего объяснить здесь:
    http://www.mackb.com/Uwe/Forum.aspx/macintosh/3883/That-mysterious-dev-folder

  3. Чтобы создать псевдонимы, Сломохо пишет:

Команды псевдонимов должны быть в вашей оболочке при запуске, если вы используете bash, ~/.bash_profile является местом для их размещения. Просто отредактируйте /создайте его и добавьте псевдонимы в конце. Больше информации об алиасе здесь - ss64.com/bash/alias.html

Всем удачи!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .