Я хочу настроить свой домашний сервер на использование ключей 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
- это когда я получаю ошибку выше.
Спасибо за помощь.
Я получил то же сообщение об ошибке при попытке войти через нестандартный порт.
Для отладки я запустил скрипт с префиксом 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
Я не уверен, почему тот сценарий не работает на Вас, но это - просто простой сценарий помощника. Попытайтесь делать его вручную (и если существует проблема кроме только со сценарием, это может помочь Вам диагностировать проблему).
Шаги, чтобы сделать это длинный путь:
scp ~/.ssh/id_dsa.pub user@servername:~/
ssh user@servername
ssh localhost
cat ~/id_dsa.pub >> ~/.ssh/authorized_keys
(можно затем удалить id_dsa.pub файл в корневом каталоге на целевой машине),
Это предполагает, что у Вас есть dsa ключ - если у Вас есть rsa ключ, используйте id_rsa.pub во всех случаях.
Существуют некоторые сложные способы сделать это в одной строке, но если у Вас будет проблема, то они не будут больше полезны, чем сценарий в помощи Вам понять это.