Linux SSH хандалт Public/Private Keys ашиглах

Дусал нэвтэрхий толь-с
15:02, 20 Зургаадугаар сар 2015-ий байдлаарх Almas (Яриа | оруулсан хувь нэмэр) хэрэглэгчийн хийсэн залруулга

Линукс серверүүд рүү алсаас хандаж удирдахад SSH холболтыг өргөн ашигладаг. Энэ холболт нь нууцлалын шифрлэлттэй хийгддэг холболт юм. Заримдаа ашиглахын тулд сервер дээрээ суулгах шаардлага гардаг.


Суулгах

Debian (Ubuntu) суурьтай системүүд дээр

sudo apt-get install openssh<pre>

RedHat (Centos/Fedora) суурьтай системүүд дээр
<pre>sudo yum install openss


Аюулгүй байдлын зарим нэмэлт тохиргоо

ssh хандалтаар сервер рүү хандахдаа нууц үг ашиглахаас илүүтэйгээр public/private түлхүүр ашиглахаар тохируулах нь аюулгүй байдлын хувьд илүү байдаг. Мөн байнга хэрэглэдэг компьютераасаа нэвтрэх бүртээ нууц үг хийхгүй холбогдох давуу талыг олгодог.


Хэрэглэгчийн компьютер дээр тохиргоо хийх:

~/.ssh хавтсанд хэрэв түлхүүр байхгүй бол дараах тушаалаар шинэ түлхүүр үүсгэж болно.

ssh-keygen -t rsa

Хэдийгээр анхнаасаа хандалтын эрх (permission) тохиргоо нь хийгдсэн байдаг ч мөн та тохируулж болно.

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa

Мөн дараах тушаалыг өгөөрэй. "Agent admitted failure to sign using the key" гэсэн алдаа заах үед энэ тушаалыг өгсний дараа хэвийн ажилладаг.

ssh-add

Түлхүүр файлаа сервер рүү хуулна. Зарим системд ssh-copy-id тушаалыг ашиглаад амархан хуулж болдог

ssh-copy-id user@hostname.example.com


Сервер дээр хийгдэх тохиргоо

root эрхээр хандах нь эрсдэлтэй тул шинэ хэрэглэгч үүсгэж шинэ хэрэглэгчээрээ нэвтэрдэг байх хэрэгтэй:

adduser username
passwd username

Шинэ хэрэглэгчдээ root хандалтын эрх өгөх:

/usr/sbin/visudo

тушаалаар нээгээд

# User privilege specification
root    ALL=(ALL)       ALL

гэсэн хэсгийг хайж олоод доор нь өөрийн шинэ хэрэглэгчид мөн адил бичиж үүсгэж өгнө.

# User privilege specification
root    ALL=(ALL)       ALL
username     ALL=(ALL)       ALL


id_rsa.pub файлыг компьютераасаа сервер рүүгээ хуулаад хандах хэрэглэгчийнхээ хавтасны .ssh/authorized_keys файл руу нэмж өгнө. (ssh-copy-id ашигласан бол ингэх шаардлагагүй)

cat id_rsa.pub >> ~/.ssh/authorized_keys


SELinux идэвхтэй ашиглаж байгаа бол дараах тушаалыг өгнө:

restorecon -Rv ~/.ssh

/etc/ssh/sshd_config файлд тохиргоо хийж өгнө.

sudo vim /etc/ssh/sshd_config

Жишээ өөрчлөлтүүд:

Port 25000
Protocol 2
PermitRootLogin no
UseDNS no

Үндсэн 22-р портыг солих нь аюулгүй байдлыг нэмэгдүүлдэг. Мөн SSH protocol 1 ашиглахгүй байх хэрэгтэй.

Зөвхөн тодорхой хэрэглэгчдийн л хандалтыг зөвшөөрөх тохиргоо хийж өгч болно:

AllowUsers username1 username2
гэх мэт

Нууц үгээр нэвтрэхийг бүрэн хориглох, Auth public key ашигладаг болгох зэрэг тохиргоонуудыг мөн энэ файлд хийж өгч болно.

Үүний дараа хадгалж гараад хийсэн тохиргоогоо идэвхжүүлнэ:

service sshd restart

Стандарт бус портоор хандахдаа:

ssh -p 25000 username@123.45.67.890