- Вопрос или проблема
- Ответ или решение
- Использование SSH-ключей в MobaXterm: Подробное руководство
- 1. Подготовка SSH-ключей
- 2. Использование полного пути к ключу
- 3. Настройка постоянной домашней директории
- 4. Копирование ключей из других программ
- 5. Проверка текущего рабочего каталога
- 6. Дополнительные советы
- Заключение
Вопрос или проблема
У меня есть ключ, который я конвертировал, и он работает нормально с Putty.
Я пробовал эти форматы:
ssh -p 1111 -i id_rsa [email protected]
ssh -i id_rsa -p 1111 [email protected]
Ключ находится в одной папке с исполняемым файлом MobaXTerm.
Спасибо!
ИЗМЕНЕНИЕ:
[chip.client] $ ssh -p 1111 -i id_rsa [email protected] -v
Warning: Identity file id_rsa not accessible: No such file or directory.
OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /etc/ssh_config
debug1: Connecting to 192.168.0.9 [192.168.0.100] port 1111.
debug1: Connection established.
debug1: identity file /home/chip/.ssh/id_rsa type -1
debug1: identity file /home/chip/.ssh/id_rsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3p1 Debian-3ubuntu7
debug1: match: OpenSSH_5.3p1 Debian-3ubuntu7 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.6
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 [email protected]
debug1: kex: client->server aes128-ctr hmac-md5 [email protected]
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: checking without port identifier
Warning: Permanently added '[192.168.0.100]:1111' (RSA) to the list of known hosts.
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/chip/.ssh/id_rsa
debug1: No more authentication methods to try.
Permission denied (publickey).
[01/09/2011 - 09:15.38] ~
MobaXterm по умолчанию использует домашний каталог в качестве временного каталога Windows. Поэтому ключи, которые вы создаете, не будут доступны, как только вы закроете MobaXterm.
После генерации ключа держите его в другой папке на своих дисках Windows и укажите полный путь в опции "-i". Диски Windows обозначаются как '/drives/c/', 'drives/d/' и т.д. в MobaXterm. Если закрытый ключ находится в E:\keys\id_rsa, то команда будет выглядеть так:
ssh -p 1111 -i /drives/e/keys/id_rsa [email protected]
Если вы регулярно используете MobaXterm, лучший способ решить эту проблему - использовать постоянное местоположение для домашнего каталога, а не временный каталог по умолчанию. Вы можете сделать это, перейдя в Настройки->Конфигурация->Разные параметры -> Использовать следующий постоянный домашний каталог. В этом случае ключи могут остаться в домашнем каталоге, и вам не нужно будет указывать опцию "i".
Если у вас уже есть настроенные ключи через Putty или что-то другое, проще всего скопировать и вставить их в директорию ssh MobaXterm.
Поэтому скопируйте их, а затем вставьте ключи в:C:\Users\%USERNAME%\Documents\MobaXterm\home\.ssh
Примечание:
По умолчанию путь для Putty обычно C:\Users\.ssh
По умолчанию путь для Cygwin обычно C:\cygwin64\home\%USERNAME%\.ssh
Я не уверен, как работает MobaXTerm в плане его среды входа. Очевидно, из вашего вывода ssh ищет ключ с именем /home/chip/.ssh/id_rsa.
Поэтому, когда вы запускаете MobaXTerm, можете попробовать некоторые вещи, например запустить "pwd" и посмотреть, в какой папке он считает, что находится, и попробовать положить ключ туда? В вашей команде ssh вы должны иметь возможность указать полный путь к ключу, что-то вроде "ssh -i /path/to/ssh/key/id_rsa" плюс другие используемые вами опции ssh.
Кроме того, вы можете указать какой-то альтернативный путь. Если MobaXTerm основан на Cygwin, вы можете сказать что-то вроде "/cygdrive/c/Documents/ssh/id_rsa", что должно соответствовать "C:\Documents\ssh\id_rsa" на вашей файловой системе.
Если вы используете vagrant:
Попробуйте получить информацию о созданных вами машинах, используя vagrant ssh-config
, это предоставит следующий вывод:
Host master HostName 127.0.0.1 User vagrant Port 2222 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile C:/Users/kafka-cluster/.vagrant/machines/master/virtualbox/private_key IdentitiesOnly yes LogLevel FATAL PubkeyAcceptedKeyTypes +ssh-rsa HostKeyAlgorithms +ssh-rsa
Ответ или решение
Использование SSH-ключей в MobaXterm: Подробное руководство
При работе с MobaXterm для выполнения SSH-подключений одним из наиболее безопасных и удобных методов аутентификации является использование SSH-ключей. Если вы уже успешно используете SSH-ключи с Putty, но сталкиваетесь с трудностями в MobaXterm, это руководство поможет вам правильно настроить аутентификацию с использованием ключей.
1. Подготовка SSH-ключей
Сначала убедитесь, что ваш ключ находится на правильном месте. MobaXterm использует временную директорию для хранения SSH-ключей по умолчанию. Чтобы избежать потери ключей при закрытии программы, рекомендуется сохранить их в постоянном каталоге.
Шаги для сохранения ключа:
- Создайте папку для хранения ключей, например,
E:\keys
. - Скопируйте ваш приватный ключ в эту папку.
2. Использование полного пути к ключу
Когда вы запускаете SSH-подключение, обязательно указывайте полный путь к вашему ключу. Если ваш ключ находится в E:\keys\id_rsa
, команда для подключения на сервер будет выглядеть следующим образом:
ssh -p 1111 -i /drives/e/keys/id_rsa [email protected]
3. Настройка постоянной домашней директории
Если вы используете MobaXterm регулярно, вы можете установить постоянную домашнюю директорию, чтобы избежать необходимости каждый раз указывать путь к ключам. Для этого:
- Перейдите в меню Settings -> Configuration -> Miscellaneous Options.
- Установите опцию Use the following persistent HOME directory и укажите путь к желаемой директории.
После этого ключи, размещенные в вашей домашней директории, будут доступны без необходимости каждую сессию указывать путь.
4. Копирование ключей из других программ
Если у вас уже есть ключи, созданные в других SSH-клиентах (например, Putty), вы можете скопировать их в директорию MobaXterm.
Стандартное местоположение для MobaXterm:
C:\Users\%USERNAME%\Documents\MobaXterm\home\.ssh
5. Проверка текущего рабочего каталога
Если вы не уверены в текущем рабочем каталоге при запуске MobaXterm, выполните команду pwd
. Убедитесь, что ключи находятся в соответствующем месте, или укажите полный путь к ключу в вашей команде SSH.
6. Дополнительные советы
- Если используется Vagrant, вы можете получить информацию о созданных машинах с помощью команды:
vagrant ssh-config
В выводе будет указано местоположение вашего приватного ключа. Убедитесь, что вы используете его в команде SSH.
Заключение
Настройка SSH-ключей в MobaXterm может быть немного отличной от процесса в других клиентах, таких как Putty. Однако следуя вышеизложенным шагам, вы сможете без проблем организовать аутентификацию с использованием ключей. Если у вас возникнут дополнительные вопросы или проблемы, не стесняйтесь обращаться за помощью. Исполнив эти шаги, вы гарантируете безопасность своих подключений и сохранность ваших данных.