Я столкнулся с той же проблемой. Следующее решение сработало для меня. Я зашел в папку ~/.local/share/mime/
, а здесь удалил файлы ./application/pdf.xml
, ./application/ppdf.xml
и ./packages/FoxitReader.xml
. Я также удалил строки в файле ./types
, читая application/pdf
и application/ppdf
. (Я не уверен, что из этого было необходимо. )Произошел выход из системы и вход в систему. Теперь PDF-документы отображаются как «PDF-документ».
В файле /etc/ssh/sshd _config на хосте должен быть параметр аутентификации с открытым ключом. Раскомментируйте и установите «да»
Убедитесь, что вы редактируете конфигурацию /etc/ssh/sshd _на хосте, а не конфигурацию /etc/ssh/ssh _. Вторые файлы предназначены только для клиентов
При необходимости обратитесь к администратору хоста A
Вам нужен только закрытый ключ на B
для входа в A
. Не генерируйте ключ в удаленной системе A
. Удаленной системе не нужно знать вашу личную личность.
Вы хотите войти в систему A
из B
. Это означает, что~/.ssh/authorized_keys
в системе A
должен содержать открытый ключ (, чтобы вы могли ввести ). Системе B
этот файл не нужен локально, чтобы вы могли войти в систему A
.
Обратите внимание, что вам необходимо убедиться, что ~/.ssh
на обоих хостах имеет разрешения 700
и что файлы внутри имеют 600
разрешения (, включая ~/.ssh/authorized_keys
наA
).
Кроме того, чтобы на самом деле использовать ключ в файле ~/.ssh/server-B.com
на B
для входа в A
, вам нужно будет использовать ssh
как
ssh -i ~/.ssh/server-B.com a-user@server-A.com
Либо запустите ssh-agent
и добавьте к нему ключ:
eval "$( ssh-agent )"
ssh-add ~/.ssh/server-B.com
ssh a-user@A-system.com
И/или добавьте запись в ~/.ssh/config
на B
для системы A
, например
Host A
User a-user
Hostname server-A.com
IdentityFile %d/.ssh/server-B.com
, а затем используйте
ssh A
Вы также можете просто использовать имя файла ключа по умолчанию , если у вас уже нет других закрытых ключей.
Ну, вы не все перепутали, только часть.
Для использования аутентификации клиента с помощью открытого ключа (криптографии )в SSH:
у вас должен быть файл приватного ключа на клиенте--вашем Б.
Лучше всего сгенерировать ключ на клиенте. Что ты сделал, генерировать на сервере и копировать, не рекомендуется, но будет работать.
Наилучшей практикой является использование стандартных имен файлов (в зависимости от «типа» алгоритма )на клиенте--~/.ssh/id_rsa
для RSA (в v2 ), ~/.ssh/id_ecdsa
для ECDSA и т. д. ssh-keygen
сделает это по умолчанию, если запустится на клиенте. Использование другого имени, как вы сделали, означает, что вы должны указывать имя файла каждый раз, когда запускаете ssh
, например ssh -i ~/.ssh/server-B.com user@host [command...]
, или в противном случае настройте свой файл конфигурации, чтобы указать это как вашеIdentityFile
(либо глобально, либо для конкретного хоста ).
Файл закрытого ключа должен быть недоступен для других пользователей. AFAICS ваш chmod
правильно понял.
вы поместили публичный ключ в ~/.ssh/authorized_keys
НА СЕРВЕР--ваш А.
Использование cat >>
, как правило, хорошо, так как оно сохраняет все существующее содержимое и добавляет новую строку. Если существуют строки, которые (вы уверены )в устаревших --для ключей или пользователей, которые больше не используются или не авторизованы --, вы можете удалить их, чтобы сохранить порядок, но это не нужно.
И файл authorized_keys
должен быть недоступен для записи другими пользователями. Это может быть или не быть по умолчанию в вашей системе; если нет, используйте chmod
таким же образом, как и для ключевого файла.
удаление записи для сервера (A )из файла known_hosts
на клиенте (B )требуется только в том случае, если ключ сервера изменен или устарел. Это не связано с аутентификацией клиента. Делая это без необходимости, если вы не позаботитесь о том, чтобы вручную проверить отпечаток ключа сервера при следующем запросе, может дать злоумышленнику возможность перехватить, украсть,и изменить свои данные.
Таким образом, если вы исправите authorized_keys
на сервере (A )и запустите ssh -i ~/.ssh/server-B.com user@serveraname
на клиенте (B ), и если вас попросят проверить отпечаток сервера, это должно сработать. Если это не так, запустите несколько опций -v
, как прокомментировал Haxiel, чтобы получить подробности. В частности, если он не видит указанный ключевой файл (, также известный как identityfile ), перепроверьте разрешения с помощью ls -l
.