SSH Anahtarlarını Ayarlama

SSH Anahtarlarını Ayarlama Bu makalemizde, SSH aracılığıyla uzak bir sunucuya oturum açarken kullanılacak SSH Anahtarlarını ayarlama işlemini açıklamaktadır.


Bu makale için SSH, OpenSSH veya uyumlu bir SSH sunucusu gereklidir. Windows kullanıcıları, Windows işletim sistemi ile SSH oturumlarını kullanmak için PuTTY veya MobaXterm gibi bir SSH istemcisini indirmek isteyecektir.

Lütfen bu kılavuzda SSH anahtarlarının belirli bir yöntemle nasıl ayarlanacağını göstereceğini unutmayın. SSH’yi nasıl kullandığınıza bağlı olarak , özel gereksinimlerinizi karşılamak için değiştirilebilecek birkaç seçenek daha vardır. Daha fazla bilgi için Google’da “SSH Anahtarları” için arama yapın ; diğer SSH yaklaşımlarını açıklayan birçok kılavuz bulacaksınız.

Bu makalede, kullanıcı dizininizdeki sunucuda zaten bir .ssh dizininizin olduğu varsayılmaktadır (örnek: /home/myuser/.ssh/). Değilse, bir sunucuya ilk kez bağlanmak için normal kullanıcı / parola kimlik doğrulamasını kullanın (örnek: ssh user@server.domainname.com). Bu, doğru izinlere sahip bir .ssh dizini oluşturmalıdır. Bir .ssh dizini oluşturmazsa, bir dizin oluşturmanız gerekir;

mkdir -p $HOME/.ssh
chmod 0700 $HOME/.ssh

Adım 1: Kişisel Anahtarınızı Oluşturma

Yerel bilgisayarınızda bir terminal / kabuk açın ve aşağıdaki komutu çalıştırın:

user@localhost # ssh-keygen -t rsa (or)
user@localhost # ssh-keygen -t rsa -b 4096 -C "$(whoami)@$(hostname)-$(date -u +%Y-%m-%d-%H:%M:%S%z)" (for a stronger key)

Ardından yeni oluşturulan anahtarı nereye kaydetmek istediğiniz sorulacaktır. Varsayılan ayar normalde kabul edilebilir ( varsayılanı kabul etmek için enter tuşuna basmanız yeterlidir ), ancak bir anahtarı yerel kök kullanıcı olarak ayarlıyorsanız, anahtarınızı farklı bir konumda saklamak isteyebilirsiniz.

Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa):
Not:$ HOME / .ssh / id_rsa – özel anahtarınızı içerir.
$ HOME / .ssh / id_rsa.pub – genel anahtarınızı içerir.

Ardından, bir parola girmeniz istenir. Bir parola kullanmayı seçerseniz, bir sunucuya bağlanmak için anahtarı her kullandığınızda bunu yazmanız gerekir (boşluklar kullanıma hazırdır; bu nedenle, artan güvenlik sizin için daha önemliyse parolanız tüm bir cümle olabilir ). Bir parola kullanmamayı seçebilirsiniz, ancak bu genellikle daha az güvenli kabul edilir.

Örnek : Dizüstü bilgisayarınız var ve sunucunuza bağlanmak için bir SSH anahtarı oluşturuyorsunuz. Anahtarı parola olmadan oluşturursanız ve dizüstü bilgisayarınız çalınırsa, hırsız başka bir şeye ihtiyaç duymadan sunucunuza bağlanabilir. Anahtarınızın bir parolası varsa, hiç kimse parolanızı bilmeden anahtarınızı kullanamaz. Biraz daha risk altındaysanız, anahtarınızı parola olmadan oluşturmayı seçebilirsiniz.

Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/username/.ssh/id_rsa.
Your public key has been saved in /home/username/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:rCwcRH+3vxiIsrkrwikDaE1UlTi8vr0g/wOfwSowCsw user@domain.com-2019-08-21-13:14:45+0000
The key's randomart image is:
+---[RSA 4096]----+
|. . . .          |
| = o . .         |
|o.= . . . .      |
|oDo . . . . .    |
|B. .. Y .        |
|O+.. o . .       |
|O++.o o . . .    |
|=*. . ... . . o. |
|.o.=+.++. . .    |
+----[SHA256]-----+
root@host [~]#

Not: şu komutu kullanarak parolanızı istediğiniz zaman değiştirebilirsiniz:

root@host [~]# sshkeygen -p

Adım 2: Kişisel Anahtarınızı Sunucuya Kopyalama

Yeni ortak anahtarınızı sunucunuza kopyalamadan önce, yerel yetkili_anahtarlar dosyasına ekleriz.

root@host [~]# cd ~/.ssh
root@host [~]# cp id_rsa.pub authorized_keys

Yerel makinenizde bir yetkili_anahtarlar dosyası zaten varsa, dosyayı favori metin düzenleyicinizle açıp düzenlemeniz ve anahtarı manuel olarak eklemeniz gerekir.

Şimdi, genel anahtarınızı sunucuya kopyalayacağız. Tipik bir sunucuda, sunucudaki her kullanıcının kendi .ssh dizini ve kendi yetkili_anahtarları dosyası vardır. Kullanıcı hesaplarınızın / home dizininde bulunduğunu varsayarsak, genel anahtarınızı kopyalamadan önce hangi kullanıcının oturum açmak istediğinizi belirlemeniz gerekir. Kök kullanıcı biraz farklıdır; Çoğu sunucuda, kök kullanıcının ssh dosyaları /root/.ssh/ içinde depolanır.

Diyelim ki dizüstü bilgisayarımda yerel kullanıcı için bir anahtar oluşturdum, ancak SSH kullanarak kök olarak bağlanmak için bu anahtarı kullanmak istiyorum. Yeni ortak anahtarımı sunucudaki kök kullanıcının ssh dizinine kopyalamam gerekir.

user@localhost [~]# cd ~/.ssh
user@localhost [~]# scp authorized_keys root@host.servername.com:/root/.ssh/

Yerel kopyanızda olduğu gibi, yetkili_anahtarlar dosyası zaten sunucuda varsa, yeni anahtarı dosyaya el ile eklemeniz gerekir.

Dikkat: SSH sürümünüze bağlı olarak, sunucuya giriş yapmaya çalışırken aşağıdakine benzer bir hata alabilirsiniz :

ssh root@host.servername.com password:
stdin: is not a tty
/root/.ssh/authorized_keys: Permission denied

Bunu görürseniz, büyük olasılıkla bir izin sorunudur. Şimdi halledelim … Mevcut anahtarı yedeklemek için .ssh / yetkili_anahtarlar içindeki genel anahtarı .ssh / yetkili_anahtarlar2 olarak yeniden adlandırarak başlayacağız:

cp -av authorized_keys{,.2}
'authorized_keys' -> 'authorized_keys.2'

Ardından, .ssh klasör izinlerinin 0700 olarak ayarlandığını doğrulayalım:

stat /home/youruser/.ssh/
File: /home/youruser/.ssh/
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 801h/2049d Inode: 61080373 Links: 2
Access: (0700/drwx------) Uid: ( 1000/ youruser) Gid: ( 1000/ youruser)
Access: 2019-08-21 09:40:09.599161015 -0400
Modify: 2019-08-21 09:40:07.363167537 -0400
Change: 2019-08-21 09:40:07.363167537 -0400

(.Ssh klasör izinleri 0700 dışında bir şeyse , değiştirmek için “ chmod 0700 /home/youruser/.ssh/ ” komutunu kullanın )

Ardından, .ssh / authority_keys dosyasının izinlerini görüntüleyecek ve gerekirse 640 olarak değiştireceğiz

cd .ssh/
user@localhost:~/.ssh$ stat authorized_keys.2
File: authorized_keys.2
Size: 768 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 61100030 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ user) Gid: ( 1000/ user)
Access: 2019-08-21 09:37:24.579636710 -0400
Modify: 2019-08-21 09:19:43.818521613 -0400
Change: 2019-08-21 09:39:56.987197777 -0400

Tüh! 644 . Bu izinleri 640 olarak değiştirelim

user@localhost:~/.ssh$ chmod 640 authorized_keys.2

Şimdi, izinlerini tekrar kontrol etmek için dosyayı stat

user@localhost:~/.ssh$ stat authorized_keys.2
File: authorized_keys.2
Size: 768 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 61100030 Links: 1
Access: (0640/-rw-r-----) Uid: ( 1000/ user) Gid: ( 1000/ user)
Access: 2019-08-21 09:37:24.579636710 -0400
Modify: 2019-08-21 09:19:43.818521613 -0400
Change: 2019-08-21 09:43:49.546511500 -0400

Mükemmel!. Şimdi, güncellenmiş dosyayı orijinal adına geri taşıyalım:

user@localhost:~/.ssh$ mv authorized_keys.2 authorized_keys

(: Sonra, sunucusuna üzerinde o güncellenmiş anahtarı kopyalamak izin kullanmak için kalın metinde kullanıcı giriş bilgileri )

user@localhost:~/.ssh$ scp /home/user/.ssh/authorized_keys root@serverIP:/root/.ssh/
root@serverIP's password:
stdin: is not a tty
authorized_keys 100% 768 737.6KB/s 00:00

3. Adım: Yeni Anahtarınızla Oturum Açma

Artık yeni anahtarınız sunucuya kopyalandığına göre SSH oturum açma işlemleri için kullanmaya başlayabilirsiniz. Kullanıcı adınız yerel makinenizde ve sunucunuzda aynıysa, aşağıdakilerle bağlantı kurabilirsiniz:

ssh root@host.domain.com
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[host.domain.com] (ECDSA) to the list of known hosts.
Last login: Wed Aug 21 09:13:32 2019 from 10.30.4.51

Yerel kullanıcı adınız ve sunucuda oturum açtığınız kullanıcı adı farklıysa, sunucuda oturum açmak istediğiniz kullanıcıyı bu komutu kullanarak belirtebilirsiniz:

ssh user@host.servername.com

Önceki örnekte, sunucuma root olarak giriş yapabilmem için anahtarımı kopyaladım. Artık anahtar sunucuda yerinde olduğuna göre, komutu çalıştırıyor

ssh root@host.servername.com
farklı davranışlara neden olur. Anahtarınızla birlikte bir parola kullanmayı seçtiyseniz, parolanızı girmeniz istenecek ve sunucuya giriş yapacaksınız. Parola kullanmadıysanız, ssh komutunu girdikten sonra derhal sunucuda oturum açarsınız.

Tebrikler! Bir SSH anahtarını başarıyla ayarladınız.

4. Adım: Daha Gelişmiş Yapılandırmalar


Bu makalede daha önce bir Parola Daha Kullanılırken Parolasız Girişler Parolaları ve anahtarınızda kullanmanın bazı avantaj ve dezavantajlarını ele aldık. Anahtarınızı, uzak bir sunucuya her bağlandığınızda parolanıza parolanıza yazmanız istenmeyecek şekilde kullanmak mümkündür.

Anahtarınız yerel bilgisayarınızın belleğine yüklenebilir, bu nedenle parolanızı yalnızca bir kez yazmanız gerekir ve sonraki her ssh oturumu otomatik olarak oturum açmayı dener.

Yerel bilgisayar terminalinize / kabuğuna ssh-add komutunu yazın . Parolanızı girmeniz istenir ve bundan sonra kimliğin eklendiğine dair bir onay almanız gerekir.

Artık her seferinde parolanızı girmek zorunda kalmadan anahtarınızı birkaç kez kullanabilirsiniz.

Ana Bilgisayarlar için Kullanıcı Adlarını Belirtme
Yerel bilgisayarınızdaki .ssh dizininizde, bir yapılandırma dosyası oluşturarak farklı sunucularla kullanmak istediğiniz kullanıcı adını da belirleyebilirsiniz.

Aşağıda bir kullanıcı adı belirtmek için basit bir yapılandırma dosyası girişi örneği verilmiştir:

Host *domain.com
User root

Bu girdi, ssh’nin domain.com sunucusuna veya domain.com’un herhangi bir alt etki alanına bağlanırken her zaman kullanıcı kökünü kullanmasına neden olur.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

  1. Putty SSH key oluşturma SSH Anahtarlarını Ayarlama için yorumda bulun

    SSH Anahtarlarını Ayarlama için henüz bir yorumda bulunulmamış! Hemen üst alanda bulunan formu kullanarak SSH Anahtarlarını Ayarlama için ilk yorumu yapabilirsin.