4

Я могу SSH с моего компьютера, используя замазку, 1 строка, как так ssh root@myname.mydomain.us -pw abc123
но когда я пытаюсь сделать это с терминала OSX, я получаю сообщение об ошибке « Bad port 'w'

Как можно заставить это работать на OSX?

2 ответа2

18

ssh не поддерживает передачу пароля в командной строке, он интерпретирует -pw как "Подключиться к порту w".

Для автоматического входа в систему через ssh используйте .ssh/authorized_keys:

  • На терминале OSX создайте ключ, используя ssh_keygen . Если вы примете имена файлов по умолчанию, ваш ssh-клиент автоматически попробует этот ключ при подключении.
  • Скопируйте содержимое результирующего файла .pub и добавьте его в .ssh/authorized_keys на целевом хосте (например, myname.mydomain.us:~root/.ssh/authorized_keys).

Если ваше сердце настроено на пароли через командную строку, expect набор инструментов может использоваться для взаимодействия с STDIN/STDOUT при выполнении команд.

11

То, что вы пытаетесь сделать, невозможно с помощью встроенного SSH-клиента в OS X. OpenSSH-клиент не может принять пароль из командной строки.

Причина, по которой вы получаете ошибку "Bad port", заключается в том, что флаг -p используется для указания порта, к которому нужно подключиться, а флаг -pw не существует. Смотрите man-страницу для более подробной информации.

Кроме того, почти всегда плохая идея указывать пароль из командной строки. Вы изучали использование аутентификации с открытым ключом?

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