SSH-Key Kullanımı
Yazan: boratanrikulu
Kaynaklar
www.digitalocean.com - Görsel Kaynağı
SSH-Key’in Oluşturulması
Öncelikle bilgisayarınızda ssh-key’i aşağıdaki gibi hazırlayın.
$ ssh-keygen
Ardından pub dosyasının içeriğini kopyalayın ve sunucu tarafına geçin.
$ cat /path/to/ssh-key.pub
Sunucuda “authorized_keys” Dosyasının Hazırlanması
Eğer hali hazırda sunucuda ilgili kullanıcının home dizini altında .ssh/authorized_keys dosyası bulunmuyorsa aşağıdaki işlemleri uygulayın.
~/.ssh klasörünü aşağıdaki gibi oluşturun ve erişebilirliğini 700 olarak belirleyin.
$ cd ~/ && mkdir .ssh && chmod 700 .ssh
~/.ssh/authorized_keys dosyasını aşağıdaki gibi oluşturun ve erişebilirliğini 600 olarak belirleyin.
$ touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
Ardından kopyaladığınız key’i .ssh/authorized_keys dosyasına yapıştırın.
SSH-Key Kullanımı ile Sunucuya Bağlanmak
Artık -i parametresi ile key’in konumunu belirterek sunucuya bağlayabilirsiniz.
$ ssh -i /path/to/ssh-key username@ServerIP
Aşağıda görüldüğü gibi parola kullanılmadan bağlantı sağlanmış oldu.
SSH Kullanımının Daha Güvenli Hale Getirilmesi
Sunucunuzun daha güvenli bir hale gelmesi için default port olan 22’yi değiştirmenizde, root kullanıcısı ve parola kullanımı ile girişleri kapatmanızda fayda vardır. Aşağıdaki gibi bu işlemi yapabilirsiniz.
config dosyasını aşağıdaki gibi açın ve ilgili satırları tabloda belirtildiği gibi değiştirin.
$ sudo nano /etc/ssh/sshd_config
Eski | Yeni | Amacı |
---|---|---|
#Port 22 | Port KullanmakIstediginizPort | Default olan 22’i yerine başka bir port kullanmak |
#PermitRootLogin yes | PermitRootLogin no | root kullanıcısı ile ssh bağlantılarını engellemek |
#PasswordAuthentication yes | PasswordAuthentication no | Parola ile girişleri kapatmak |
#PubkeyAuthentication yes | PubkeyAuthentication yes | Pubkey kullanarak girişlere izin vermek |
İşlem gerçekleştirildikten sonra aşağıda görüldüğü gibi ssh-key olmadan bağlantı kurulmasına izin verilmemektedir.
“.ssh/config” Dosyasının Kullanımı
Eğer birden fazla sunucu ile uğraşıyorsanız, her bağlantı kurma aşamasında IP girmek tam bir işkence. Bunun önüne geçmek için bilgisayarınızda aşağıdaki gibi bir .ssh/config dosyası oluşturabilirsiniz. Bu sayede IP’leri girmeden direkt olarak ssh serverName diyerek sunucunuz ile bağlantı sağlayabilirsiniz.
Bunun için ~/.ssh/config dosyasını oluşturun.
$ touch .ssh/config
Ardından aşağıdaki dosyayı ayarlayın.
Host serverName
HostName ServerIP
User username
Port 22
IdentityFile /path/to/ssh-key
Artık herhangi bir şekilde IP girmek yerine direkt olarak ssh serverName diyerek sunucunuza bağlanabilirsiniz.