Недавно я изменил свой рабочий стол с рабочего стола Ubuntu по умолчанию (Unity) на рабочий стол Kubuntu. Я не могу понять, почему это вызывает ошибки с моей конфигурацией файла ключей SSH.
FE есть пользователь "user" на компьютере "host", где один из моих ключей (PK находится в ~/.shh локально) добавлен к авторизованным ключам. Что я хочу сделать, так это:
ssh user@host
Это работало нормально в Unity (если я вернусь к Unity, все равно работает), но когда я вхожу в рабочий стол Kubuntu, мне предлагается ввести пароль.
Это отлично работает на обоих рабочих столах:
ssh user@host -i ~/.ssh/key
Итак, я предполагаю, что программа ssh не находит мои ключевые файлы, но почему имеет значение рабочий стол, и как это исправить?
Соответствующая часть из моего локального каталога .ssh (ls -la):
drwx------ 2 szaboadam szaboadam 4096 okt 7 16:32 .
-rw------- 1 szaboadam szaboadam 1675 okt 7 16:32 key
-rw-r--r-- 1 szaboadam szaboadam 415 okt 7 16:32 key.pub
И из директории .ssh сервера:
drwx------ 2 git git 4096 Oct 7 16:33 .
-rwx------ 1 git git 566 Oct 7 16:33 authorized_keys
Я использую Ubuntu 14.04. Спасибо за помощь!
решение1
Странно, что команда работает на Unity, потому что обычно ключи считываются из ~/.ssh/id_*
, если они не переопределены. Вы можете переименовать key
и key.pub
в id_*
и id_*.pub
соответственно, где *
находится dsa
, rsa
, ecdsa
или ed25519
, в зависимости от типа ключа (который вы можете получить из файла открытого ключа).
В качестве альтернативы создайте его ~/.ssh/config
с помощью IdentityFile ~/.ssh/key
.
РЕДАКТИРОВАТЬ:Вы также можете использовать ~/.ssh/config
для указания ключей для каждого хоста, например:
Host host1
IdentityFile ~/.ssh/key1
Host host2
IdentityFile ~/.ssh/key2