Проблема с ключом SSH

Я хочу настроить свой домашний сервер на использование ключей ssh, но когда я следую руководству по https://help.ubuntu.com/10.04/serverguide/C/openssh-server.html для настройки up ssh keys Я получаю это:

Bad port 'umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys'

Я прошёл мимо части, где вы создали ключ, используя:

ssh-keygen -t dsa

, но ту часть, которая просит меня сделать это:

ssh-copy-id user@servername

- это когда я получаю ошибку выше.

Спасибо за помощь.

2
задан 23 January 2011 в 14:35

2 ответа

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

Для отладки я запустил скрипт с префиксом bash -x. Вот где я столкнулся с проблемами:

+ ssh -p8882 'umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys'

Таким образом, он взял параметр командной строки '-p8882' и попытался использовать его в качестве машины, чтобы попытаться достичь. Излишне говорить, что это не удалось. Я должен был увидеть ваши результаты, чтобы изолировать вашу проблему дальше.

Как сказал teeks99, сначала убедитесь, что вы можете войти с паролем. Это должно изолировать проблемы «не удается войти в систему с помощью ssh» от проблем «ssh-copy-id не работает».

Отредактировано, чтобы добавить:

вы можете обойти некоторые проблемы невозможности передачи дополнительных аргументов в ssh, создав или добавив файл с именем ~/.ssh/config:

Host shortname
    HostName ec2-0-0-0-0.compute-1.amazonaws.com
    Port  8882
    IdentityFile ~/.ssh/nonstandard.name
    User ubuntu

man 5 ssh_config для деталей

Примерно с этой настройкой я заставил скрипт работать, просто выполнив ssh-copy-id shortname

0
ответ дан 23 January 2011 в 14:35

Я не уверен, почему тот сценарий не работает на Вас, но это - просто простой сценарий помощника. Попытайтесь делать его вручную (и если существует проблема кроме только со сценарием, это может помочь Вам диагностировать проблему).

Шаги, чтобы сделать это длинный путь:

  1. скопируйте свой ключ к удаленному серверу с scp ~/.ssh/id_dsa.pub user@servername:~/
  2. ssh к удаленному серверу с ssh user@servername
  3. удостоверьтесь, что .ssh каталог существует и имеет корректные полномочия путем вызова ssh с чем-то как ssh localhost
  4. поместите свой ключ в корректном месте с cat ~/id_dsa.pub >> ~/.ssh/authorized_keys

(можно затем удалить id_dsa.pub файл в корневом каталоге на целевой машине),

Это предполагает, что у Вас есть dsa ключ - если у Вас есть rsa ключ, используйте id_rsa.pub во всех случаях.

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

4
ответ дан 23 January 2011 в 14:35

Другие вопросы по тегам:

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