Так что моя проблема в том, что я не могу подключиться к своему SSH-серверу (работает на Linux Mint Sarah) с моего клиента (Windows 7 через PuTTY). Работает только через локальный IP.
И сервер, и клиент находятся в одной подсети. Сервер SSH настроен на разрешение только соединений с ключом SSH-RSA без паролей. Я установил ключ, и он успешно работает по желанию, когда я подключаюсь к локальному IP-адресу сервера.
Я открыл порт 22 в брандмауэре моего устройства WAN, и я могу подтвердить, что он подключается к правильному окну, когда я пытаюсь установить общедоступный IP-адрес, потому что при включении / выключении брандмауэра сервера происходит отклонение. Таким образом, соединение SSH успешно достигает сервера, пытается выполнить аутентификацию с помощью закрытого ключа, но завершается неудачно с:
Server refused our key
Звучит очевидно, но я не понимаю, почему ключ не проходит проверку подлинности, когда я могу успешно выполнить этот же ключ локально. Эту проблему было трудно исследовать, потому что большинство результатов - неправильная переадресация портов.
Вот что я попробовал (помимо прочего, следуя этому руководству):
- Обновил все пакеты на сервере и
apt-get install openssh-server
. - В
/etc/ssh/sshd_config
я установил:Port 22
AllowUsers user
PasswordAuthentication no
UsePAM no
- В PuTTYgen созданы открытый и закрытый ключи, сохраненные в каталоге (в Windows).
- В
/home/user/.ssh/authorized_keys
скопировал часть открытого ключа, начиная сssh-rsa
и заканчивая== comment
в одной строке с возвратом каретки в конце. chmod 700 ~/.ssh
который перечисляет подls -al
-al какdrwx------
chmod 644 ~/.ssh/authorized_keys
который перечисляет подls -l
как-rw-r--r--
- В PuTTY в разделе SSH> Auth установите "Закрытый ключ для аутентификации" на закрытый ключ, сгенерированный ранее.
- Соединитесь с портом 22 как
user@<local_ip>
... успешно. - Подключитесь к порту 22 как
user@<public_ip>
...Server refused our key
.
В качестве бонуса, tail
ing /var/log/auth.log
ничего не дает мне, когда ключ отказывается. При локальном подключении печатается Accepted publickey
.
Наконец, и я не уверен, что это актуально, но попытка соединиться с SFTP с FileZilla по общедоступному IP дает мне эту ошибку:
Error: The first key-exchange algorithm supported by the server is diffie-hellman-group1-sha1, which is no longer secure. Aborting connection.
Error: Could not connect to server
Сказать, что я являюсь средним пользователем Linux, было бы натяжкой, поэтому, возможно, я что-то упускаю Надеюсь, я прояснил свою проблему. Цени любую помощь!
Изменить: Вывод из пакетов PuTTY SSH и необработанных данных (в основном мусор, так что включил то, что я нашел читабельным человеком):
Event Log: Looking up host "<omitted>"
Event Log: Connecting to <omitted> port 22
Event Log: We claim version: SSH-2.0-PuTTY_Release_0.67
Event Log: Server version: SSH-2.0-dropbear_0.46
Event Log: We believe remote version has SSH-2 channel request bug
Event Log: Using SSH protocol version 2
Event Log: Using Diffie-Hellman with standard group "group1"
Event Log: Doing Diffie-Hellman key exchange with hash SHA-1
Event Log: Host key fingerprint is:
Event Log: ssh-rsa 1040 <omitted>
Outgoing packet #0x2, type 21 / 0x15 (SSH2_MSG_NEWKEYS)
Event Log: Initialised triple-DES CBC client->server encryption
Event Log: Initialised HMAC-SHA1 client->server MAC algorithm
Incoming packet #0x2, type 21 / 0x15 (SSH2_MSG_NEWKEYS)
Event Log: Initialised triple-DES CBC server->client encryption
Event Log: Initialised HMAC-SHA1 server->client MAC algorithm
Incoming packet #0x4, type 51 / 0x33 (SSH2_MSG_USERAUTH_FAILURE)
00000000 00 00 00 12 70 75 62 6c 69 63 6b 65 79 2c 70 61 ....publickey,pa
00000010 73 73 77 6f 72 64 00 ssword.
Event Log: Server refused our key