По моему опыту, это проще, чем вы думаете, по крайней мере, для меня, использующего Ubuntu в качестве клиента. Но делать все нужно в правильной последовательности. Прежде чем пытаться передать ключ, вы должны попытаться убедиться, что вы можете подключиться, используя имя пользователя и пароль, которые являются вашими кредитными данными для входа, не обязательно root.
Затем, как только вы сможете подключиться, вы можете передать ключ:
сгенерировать ключ (RSA или DSA)
ssh-keygen -t rsa -- or dsa
передать ключ на удаленный хост:
ssh-copy-id username@host (your username and the host name or IP)
если не стандартный порт 22: обратите внимание на кавычки вокруг аргумента
ssh-copy-id "username@host -p PortNumber" (substitute number forPortNumber)
Я считаю, что проще всего настроить учетную запись ddns для обработки внешнего IP-адреса. Делает вещи намного проще.
Если вы используете Ubuntu или что-то подобное, вы можете найти полезную информацию здесь . Если нет, и если это не сработает, извините, но я пробовал.