Да ли вам јавни ССХ кључеви задају проблеме? Пробајте једно од ових решења.

ССХ је корисна алатка за повезивање са удаљеним машинама, али можете наићи на грешку „Пермиссион дениед (публицкеи)“ која укључује ваш јавни кључ на Линук-у. На срећу, постоје неке једноставне поправке које можете покушати да решите.

Шта је јавни кључ?

Када генеришете пар кључева за ССХ на Линук-у, добићете јавни и приватни кључ. Приватни кључ ће остати код вас као строго чувана тајна, али јавни кључ је оно што ће бити пренето удаљеним серверима да бисте могли да се пријавите без лозинке. Ваш локални ССХ клијент ће ускладити јавни кључ са приватним кључем када се повежете.

Предност ове методе је у томе што морате дати само јавни кључ. Све док држите приватни кључ приватним, ово би требало да вас заштити у случају да је ваш јавни кључ компромитован. Јавни кључ ће сам по себи бити бескористан.

ОпенССХ, најчешће коришћени ССХ клијент и сервер у свету отвореног кода, захтева датотеку која садржи било јавне кључеве на удаљеној машини (.ссх/аутхоризед_кеис" у вашем кућном директоријуму), да имате одређене дозволе. Неће функционисати ако су дозволе за писање постављене за друге кориснике, што је познато као „светско писање“. Пошто име директоријума почиње тачком (.), неће се појавити ни на једном лс листи осим ако не користите команда

лс -А.

Дозволе се могу променити ако је датотека копирана са другог рачунара или сте је сами креирали. На срећу, ово је лако поправити.

Проверите дозволе свог јавног кључа

Датотека аутхоризед_кеис је једноставно датотека у облику обичног текста која садржи све јавне кључеве клијената за које желите да можете да се пријавите на свој налог на удаљеној машини. Да бисте видели његове дозволе, користите команду лс са опцијом -л:

ls -l ~/.ssh/authorized_keys

Ово ће приказати подешавања дозвола за власника, групу и друге кориснике. Обратите пажњу на последњих шест слова у низу. Ако видите "в" у њима, то значи да група или други могу да јој пишу, чинећи је несигурном.

Желите да у ову датотеку можете писати ви, али не и група или други. Да бисте дали приступ правим корисницима, можете променити дозволе помоћу цхмод-а.

Постоје два начина: нумерички и симболички.

Нумерички начин је краћи, али морате запамтити окталне бројеве дозвола:

chmod 700 ~/.ssh/authorized_keys

Симболични метод је више мнемонички:

chmod go-w ~/.ssh/authorized_keys

Безбедно копирајте кључеве користећи ссх-агент

Можете ручно да копирате и налепите све јавне кључеве са своје машине у ~/.ссх/.аутхоризед_кеис датотеку, али коришћење програма ссх-агент ће смањити шансе за било какве грешке у дозволама.

Да бисте покренули ссх-агент, користите ову команду:

eval "$(ssh-agent-s)"

Да бисте се пријавили на удаљени сервер користећи ссх-агент, користите опцију -А са ссх

ssh -A [email protected]

Проверите ссхд подешавања удаљеног сервера

Ако било који од ових покушаја не успе, можда ћете морати да извршите неке промене у конфигурацији ссхд сервера на удаљеној машини ако имате роот приступ. Ако не, вероватно ћете морати да ступите у контакт са администратором система да вам помогне да решите све проблеме са ССХ везом. Ово је крајњи метод јер може учинити ваш систем мање сигурним.

Конфигурациона датотека за ссхд на нивоу система је /etc/ssh/sshd_config. Пошто је у власништву роот-а, мораћете да користите судо да бисте га уредили. На пример, да бисте га уредили помоћу Вим-а:

sudo vim /etc/ssh/sshd_config

Да бисте омогућили ссхд да вам омогући да се пријавите чак и ако је ваша датотека аутхоризед_кеис уписана у целом свету, подесите опцију „СтрицтМодес“ на „не“ у овој датотеци.

Сачувајте га и поново покрените ССХ сервер:

sudo systemctl restart sshd.service

Сада можете да поправите грешке у дозволама за ССХ јавни кључ

Можете наићи на грешке у вези са ССХ јавним кључевима на удаљеним системима. На срећу, већину времена све што треба да урадите је да проверите и подесите дозволе за фајл тако да нико други не може да види ваш кључ. Такође можете користити ссх-агент за поузданије везе. Као последње средство, можете учинити ССХ сервер мање строгим.