ssh-keygen: SSH anahtarı oluşturma, açık anahtar kaydı ve ssh-copy-id kullanımı
ssh-keygen, SSH bağlantısında kullanılan özel anahtar ve açık anahtar çiftini oluşturan, ayrıca parmak izi kontrolü, parola değiştirme ve known_hosts temizliğini de üstlenen OpenSSH komutudur. Bir AlmaLinux 9 sunucusunda ed25519 ve rsa anahtarları oluşturup parmak izlerini kontrol ettim, parolayı ve yorumu değiştirdim, ardından ssh-copy-id'yi dry-run ile denedim: sunucuya giden tek şey .pub dosyasındaki tek satırlık açık anahtardı.
Aşağıdaki çıktıdaki hesap adları ve anahtar dosyası yolları örnek değerlerdir; parmak izleri, açık anahtarlar ve randomart, bu yazı için oluşturulup sonra silinen anahtarlara aittir. Açık anahtarı sunucuya gerçekten kaydeden komut yalnızca yazıldı, çalıştırılmadı.
1️⃣ ssh-keygen ile anahtar oluşturma: -t ed25519 ve -C yorumu
Anahtar ssh-keygen -t tür -C yorum biçiminde oluşturulur. -t anahtar türüdür, -C ise açık anahtarın sonuna eklenen yorumdur; buraya e-posta adresi veya anahtarın amacı yazılır. Aşağıda dosya -f ile belirtilmiş ve iki parola sorusunda doğrudan Enter'a basılmış hâlinin tam çıktısı var.
ssh-keygen -t ed25519 -C "user@example.com" -f ~/.ssh/id_ed25519Generating public/private ed25519 key pair.
Enter passphrase for "/home/user/.ssh/id_ed25519" (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_ed25519
Your public key has been saved in /home/user/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:c73KJh85pPijvy43kS1uaQo77fSsGlE4Wz+aMF+sTy8 user@example.com
The key's randomart image is:
+--[ED25519 256]--+
| |
| . |
| o o |
| = o . |
| = Soo . |
| = *+*.. . |
| o.B.o++ . |
| .=o*Eo.+ |
| o+=@OO= |
+----[SHA256]-----+Parola sorusunda yalnızca Enter'a basarsanız anahtar parolasız olur. -f'yi atlarsanız parola sorusundan önce dosyanın nereye kaydedileceğini soran bir satır çıkar. Parantez içinde ev klasörünüzün altındaki varsayılan yol .ssh/id_ed25519 yazar ve burada da yalnızca Enter'a basınca anahtar o yola kaydedilir.
Çıktının sonundaki randomart, parmak izinin resme dönüştürülmüş hâlidir. Anahtarı oluştururken ve -lv ile yeniden kontrol ederken aynı resim çıktı.
ls -l ~/.ssh/id_ed25519 ~/.ssh/id_ed25519.pub-rw------- 1 user user 411 Oct 29 08:22 /home/user/.ssh/id_ed25519
-rw-r--r-- 1 user user 98 Oct 29 08:22 /home/user/.ssh/id_ed25519.pubÖzel anahtar 600, açık anahtar 644 izniyle oluşturuldu. Özel anahtarı yalnızca kendi bilgisayarınızda tutun ve hiçbir yere göndermeyin.
cat ~/.ssh/id_ed25519.pubssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJVLiw04ugfXq15n2m8ZDW0OywkRoug8beXw/9VnVY/L user@example.comAçık anahtar; anahtar türü, anahtar değeri ve yorumun boşlukla birleştiği tek bir satırdır. Bağlanacağınız sunucudaki authorized_keys dosyasına giren de bu satırdır. Klasördeki dosyaların görevleri bir ağaçta toplandı.
2️⃣ ssh-keygen seçenekleri: -f, -N, -b, -q
Sorulara yanıt vererek oluşturmak elle yazarken kolaydır, ancak bir betikte soruların tamamen kalkması gerekir. Dosyayı -f ile, parolayı -N ile verirseniz anahtar hiç sormadan hemen oluşturulur.
ssh-keygen -t ed25519 -f ~/.ssh/deploy_key -N "" -C "deploy@example.com"Generating public/private ed25519 key pair.
Your identification has been saved in /home/user/.ssh/deploy_key
Your public key has been saved in /home/user/.ssh/deploy_key.pub
The key fingerprint is:
SHA256:Rhk2/tgn59K8jtvDWJTOLiYnToM8t4gkdaMfu6TJ0oM deploy@example.com
The key's randomart image is:
+--[ED25519 256]--+
| + |
| o + |
| + . |
| . + o |
| . o S ++o |
| . + + B+ |
| .oo * + .=+ |
| E+o* Boo=++. |
| .=.=oo=o++. |
+----[SHA256]-----+-N'nin ardından boş tırnak verince anahtar parolasız oluştu; kayıt yeri ve parmak izi hiçbir soru olmadan tek seferde çıktı.
ssh-keygen -t ed25519 -f ~/.ssh/deploy_key -N ""Generating public/private ed25519 key pair.
/home/user/.ssh/deploy_key already exists.
Overwrite (y/n)?Aynı adla yeniden çalıştırınca already exists ardından üzerine yazılıp yazılmayacağını soruyor. n'ye basınca hiçbir şey değişmedi ve çıkış kodu 1 ile bitti. Kullanımdaki bir anahtarın üzerine yanlışlıkla yazmamak için yeni anahtarları başka bir adla oluşturun.
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N "" -C "user@example.com"Generating public/private rsa key pair.
Your identification has been saved in /home/user/.ssh/id_rsa
Your public key has been saved in /home/user/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:f+uwCSQjMka1BEHzXADwIWbrlbVRiP6Z4tjnwNwPVAA user@example.com
The key's randomart image is:
+---[RSA 4096]----+
|o=BE*=+. |
|oo.Oo++ |
| .+o+. . |
|.... . |
| .+ o.= S |
| .o+o= + . |
| ++.o . o . |
| . o..o . = . |
| o. . o.o |
+----[SHA256]-----+rsa'da -b uzunluğu belirler. Kılavuza göre varsayılan değer 3072 bittir; yukarıda anahtar 4096 bit ile oluşturuldu ve randomart başlığında RSA 4096 göründü. Kılavuzda ed25519'un uzunluğunun sabit olduğu, bu yüzden -b verilse de yok sayıldığı yazıyor.
ssh-keygen -f ~/.ssh/default_key -N "" -C "user@example.com"Generating public/private ed25519 key pair.
Your identification has been saved in /home/user/.ssh/default_key
Your public key has been saved in /home/user/.ssh/default_key.pub
The key fingerprint is:
SHA256:mwy02fpKxjxEVvLC2EUJeaMIiNFOVS0GwWVjN9v0j4c user@example.com
The key's randomart image is:
+--[ED25519 256]--+
|o+ o+=O=*.. |
|o + .*+B== . |
| o ..oB+o.. . |
| . .+.= + |
| = S E o |
| + + o . |
| B + |
| o o |
| ... |
+----[SHA256]-----+-t atlanınca bir ed25519 anahtarı oluşturuldu.
ssh-keygen -q -t ed25519 -f ~/.ssh/backup_key -N "" -C "backup@example.com"; echo rc=$?rc=0-q eklenince parmak izi ve randomart dahil her şey gizlenir, yalnızca çıkış kodu kalır. Birden çok sunucu için anahtarları bir betikle oluştururken kullanılır.
📌 Başlıca seçenekler: bu yazıda çalıştırılan sonuçlar
| Seçenek | Görev | Bu yazıdaki sonuç | |
|---|---|---|---|
| -t tür | Oluşturulacak anahtar türü | Çıktının ilk satırında ed25519, rsa gibi tür görünür; verilmezse ed25519 | |
| -C yorum | Açık anahtarın sonuna eklenen yorum | cat ile görülen açık anahtarın sonunda user@example.com | |
| -f dosya | Anahtar dosyası yolu | /home/user/.ssh/deploy_key yoluna kaydedildiğini söyleyen satır; aynı adla yeniden çalıştırınca already exists ve Overwrite (y/n)? | |
| -N parola | Yeni parola (passphrase); boş tırnak parolasız demektir | Parola sorusu olmadan kayıt yeri ve parmak izi tek seferde | |
| -b bit | Anahtar uzunluğu | rsa'ya 4096 verilince randomart başlığında RSA 4096 | |
| -q | Tüm çıktıyı gizler | Yalnızca echo ile yazdırılan rc=0 satırı kalır | |
| -l | Anahtar dosyasının parmak izini yazdırır | Açık ve özel anahtardan aynı SHA256 parmak izi; authorized_keys için anahtar başına bir satır | |
| -E karma | Parmak izinin karma türünü belirler | -E md5 ile MD5:00:7b:02:5e ile başlayan parmak izi | |
| -v | -l ile birlikte verilince randomart da yazdırılır | Anahtar oluşturulurken çıkanla aynı randomart | |
| -y | Özel anahtardan açık anahtarı çıkarıp yazdırır | .pub dosyasıyla harfi harfine aynı tek satırlık açık anahtar | |
| -p | Özel anahtarın parolasını değiştirir | Yeni parolayla kaydedildiğini söyleyen satır çıkar; özel anahtar 411 bayttan 464 bayta çıkar | |
| -P parola | Eski parola (şu an ayarlı olan) | Doğru parolayla açık anahtar, yanlış parolayla incorrect passphrase supplied to decrypt private key | |
| -c | Yorumu değiştirir; yeni yorum -C ile verilir | Old comment: user@example.com ve Comment 'user@laptop' applied | |
| -F ana_bilgisayar | known_hosts içinde o ana bilgisayarın satırını bulur | # Host 192.0.2.10 found: line 1 ve o satır | |
| -R ana_bilgisayar | known_hosts içinden o ana bilgisayarın satırını siler | known_hosts updated ve özgün dosya known_hosts.old; olmayan ana bilgisayar için not found | |
| -H | known_hosts içindeki ana bilgisayar adlarını ve adresleri karma hâline getirir | |1| ile başlayan satırlara dönüşür ve .old dosyasında karma öncesi satırların kaldığını söyleyen bir WARNING çıkar |
📎 Diğer seçenekler: resmî kılavuza göre
| Seçenek | Görev | |
|---|---|---|
| -a tur | Özel anahtar kaydedilirken KDF (bcrypt_pbkdf) tur sayısı; arttıkça parola kontrolü yavaşlar ve kaba kuvvete karşı dayanıklılık artar; varsayılan 16 | |
| -A | Eksik ana bilgisayar anahtarlarını her varsayılan tür (rsa, ecdsa, ed25519) için varsayılan yollarda oluşturur | |
| -B | Anahtar dosyasının bubblebabble özetini yazdırır | |
| -e | OpenSSH anahtarını -m biçimine (varsayılan RFC4716) çevirip yazdırır; başka SSH programları için | |
| -i | -m biçimindeki (varsayılan RFC4716) parolasız anahtarı OpenSSH biçimine çevirip yazdırır | |
| -m biçim | Anahtar biçimini belirler (RFC4716, PKCS8, PEM); -p ile birlikte özel anahtarları OpenSSH ve PEM biçimleri arasında çevirir | |
| -r ana_bilgisayar | Açık anahtardan o ana bilgisayar adının SSHFP DNS kaydını yazdırır | |
| -s CA_anahtarı | Bir CA anahtarıyla açık anahtarı imzalayıp sertifika oluşturur | |
| -L | Sertifikanın içeriğini yazdırır | |
| -K | FIDO kimlik doğrulayıcısında saklanan resident anahtarları geçerli klasöre indirir | |
| -Y sign | Bir dosyayı SSH anahtarıyla imzalar; imza, dosya adının sonuna .sig eklenerek kaydedilir, kullanım adı -n ile verilir |
3️⃣ ssh-keygen -l ile parmak izi kontrolü ve -y ile açık anahtarı çıkarma
Birden çok anahtar dosyası varsa hangi açık anahtarın hangi özel anahtarın eşi olduğunu yalnızca dosya adından anlamak zordur. Parmak izi özel ve açık anahtarda aynı değeri verdiği için iki dosyanın parmak izini -l ile karşılaştırarak eşleşmeyi doğrulayabilirsiniz.
ssh-keygen -l -f ~/.ssh/id_ed25519.pub256 SHA256:c73KJh85pPijvy43kS1uaQo77fSsGlE4Wz+aMF+sTy8 user@example.com (ED25519)ssh-keygen -l -f ~/.ssh/id_ed25519256 SHA256:c73KJh85pPijvy43kS1uaQo77fSsGlE4Wz+aMF+sTy8 user@example.com (ED25519)Açık anahtar dosyası ile özel anahtar dosyasından aynı SHA256 parmak izi çıktı. Baştaki 256 anahtar uzunluğu, sondaki parantez ise anahtar türüdür.
ssh-keygen -l -E md5 -f ~/.ssh/id_ed25519.pub256 MD5:00:7b:02:5e:b8:ba:85:0c:32:d7:15:7e:72:45:f7:bc user@example.com (ED25519)-E md5 eklenince eski biçim olan MD5 parmak izine geçilir. Eski bir sunucu ya da yönetim ekranı MD5 parmak izi gösterdiğinde karşılaştırmak için kullanılır.
ssh-keygen -lv -f ~/.ssh/id_ed25519.pub256 SHA256:c73KJh85pPijvy43kS1uaQo77fSsGlE4Wz+aMF+sTy8 user@example.com (ED25519)
+--[ED25519 256]--+
| |
| . |
| o o |
| = o . |
| = Soo . |
| = *+*.. . |
| o.B.o++ . |
| .=o*Eo.+ |
| o+=@OO= |
+----[SHA256]-----+-v ile birlikte verince randomart yeniden çıkar. Anahtar oluşturulurken yazdırılan resimle aynıydı.
ssh-keygen -l -f ~/.ssh/authorized_keys256 SHA256:Rhk2/tgn59K8jtvDWJTOLiYnToM8t4gkdaMfu6TJ0oM deploy@example.com (ED25519)authorized_keys gibi birden çok açık anahtar satırı olan bir dosya verirseniz her anahtar için bir satır parmak izi çıkar. Sunucuda hangi anahtarların kayıtlı olduğunu bu yolla kontrol edersiniz.
ssh-keygen -y -f ~/.ssh/id_ed25519ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJVLiw04ugfXq15n2m8ZDW0OywkRoug8beXw/9VnVY/L user@example.com-y, özel anahtardan açık anahtarı yeniden çıkarır. .pub dosyasını sildiyseniz ya da başka bir bilgisayara yalnızca özel anahtarı taşıdıysanız bu çıktıyı bir dosyaya kaydetmeniz yeterlidir. Çıktı, özgün .pub dosyasıyla harfi harfine aynıydı.
4️⃣ ssh-keygen -p ile parola değiştirme ve -c ile yorum değiştirme
Özel anahtara parola (passphrase) koyarsanız dosya sızsa bile parola olmadan kullanılamaz. Buna karşılık her bağlantıda parolayı yazmanız gerekir; bu yüzden insanların elle bağlandığı anahtarlara uygundur, cron gibi kendiliğinden çalışan betiklerin anahtarlarına uygun değildir.
ssh-keygen -p -f ~/.ssh/id_ed25519 -P "" -N "example-pass"Key has comment 'user@example.com'
Your identification has been saved with the new passphrase.-P eski parola, -N yeni paroladır. Anahtarın parolası olmadığı için -P'ye boş tırnak verildi ve yeni parolayla yeniden kaydedildiğini söyleyen iki satır çıktı. Kılavuzda seçeneksiz yalnızca -p verilirse eski ve yeni parolanın sırayla sorulduğu yazıyor.
ls -l ~/.ssh/id_ed25519-rw------- 1 user user 464 Oct 29 08:22 /home/user/.ssh/id_ed25519Parola konduktan sonra özel anahtar dosyası 411 bayttan 464 bayta büyüdü.
ssh-keygen -y -f ~/.ssh/id_ed25519 -P "example-pass"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJVLiw04ugfXq15n2m8ZDW0OywkRoug8beXw/9VnVY/L user@example.comssh-keygen -y -f ~/.ssh/id_ed25519 -P "wrongpass"Load key "/home/user/.ssh/id_ed25519": incorrect passphrase supplied to decrypt private keyParolalı bir anahtarda -y için de parolanın -P ile verilmesi gerekir. Doğru parolayla öncekiyle aynı açık anahtar çıktı, yanlış parolayla incorrect passphrase hatasıyla bitti. Kılavuz kaybolan bir parolayı geri almanın yolu olmadığını belirtiyor; parolayı unutursanız yeni bir anahtar oluşturup açık anahtarı yeniden kaydedin.
ssh-keygen -c -C "user@laptop" -f ~/.ssh/id_ed25519 -P "example-pass"Old comment: user@example.com
Comment 'user@laptop' appliedcat ~/.ssh/id_ed25519.pubssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJVLiw04ugfXq15n2m8ZDW0OywkRoug8beXw/9VnVY/L user@laptop-c yorumu değiştirir. Eski ve yeni yorum birer satır olarak çıkar ve açık anahtar dosyasının sonundaki yorum da user@laptop oldu. Yorum yalnızca anahtarları ayırt etmeye yarayan bir etiket olduğu için anahtar değerinin kendisi değişmedi.
ssh-keygen -p -f ~/.ssh/id_ed25519 -P "example-pass" -N ""Key has comment 'user@laptop'
Your identification has been saved with the new passphrase.Parolayı kaldırmak için -N'ye boş tırnak verin. Aynı iki satır çıkar ve bundan sonra -y yeniden -P olmadan çalıştı.
5️⃣ ssh-keygen -R ile known_hosts'tan ana bilgisayar anahtarı silme
known_hosts'ta bağlandığınız sunucuların ana bilgisayar anahtarları satır satır birikir. Sunucu yeniden kurulup ana bilgisayar anahtarı değişirse ssh kayıtlı anahtarla uyuşmadığı için bağlantıyı reddeder; eski satırı silen seçenek -R'dir. Aşağıdaki known_hosts örnek adreslerle oluşturulmuş üç satırlık bir dosyadır ve -f ile belirtildi.
cat ~/.ssh/known_hosts192.0.2.10 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKKphFOc7oiKNpIHFTzK/ippCS5U5D+lF3xmXM6dmYjk
server2.example.com,192.0.2.20 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID3s6oYeTCz7KeYs0f/60/Ix0DhmK4hf1uHCC10TrXyR
[192.0.2.30]:2222 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC0WmcBD2HIsiSn+tERrbeFIyExAodSEUhE9j5WMpkRWHer satırda sırasıyla ana bilgisayar adı veya adres, anahtar türü ve anahtar değeri bulunur. Virgülle birleştirilmiş ikinci satır aynı sunucunun adını ve adresini içerir; üçüncü satırdaki köşeli parantez ve iki nokta ise 22 dışında bir portu gösterir.
ssh-keygen -F 192.0.2.10 -f ~/.ssh/known_hosts# Host 192.0.2.10 found: line 1
192.0.2.10 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKKphFOc7oiKNpIHFTzK/ippCS5U5D+lF3xmXM6dmYjk-F, o ana bilgisayarın satırını kaçıncı satır olduğuyla birlikte yazdırır. Olmayan bir ana bilgisayarda hiçbir şey yazdırmadı ve çıkış kodu 1 ile bitti.
ssh-keygen -R 192.0.2.10 -f ~/.ssh/known_hosts# Host 192.0.2.10 found: line 1
/home/user/.ssh/known_hosts updated.
Original contents retained as /home/user/.ssh/known_hosts.oldcat ~/.ssh/known_hostsserver2.example.com,192.0.2.20 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID3s6oYeTCz7KeYs0f/60/Ix0DhmK4hf1uHCC10TrXyR
[192.0.2.30]:2222 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC0WmcBD2HIsiSn+tERrbeFIyExAodSEUhE9j5WMpkRW-R o ana bilgisayarın satırını siler ve özgün dosyayı known_hosts.old olarak bırakır. Silmeden sonra yalnızca iki satır kaldı.
ssh-keygen -R 192.0.2.99 -f ~/.ssh/known_hostsHost 192.0.2.99 not found in /home/user/.ssh/known_hostsssh-keygen -R "[192.0.2.30]:2222" -f ~/.ssh/known_hosts# Host [192.0.2.30]:2222 found: line 2
/home/user/.ssh/known_hosts updated.
Original contents retained as /home/user/.ssh/known_hosts.oldOlmayan bir ana bilgisayar verilince yalnızca tek satır not found çıktı. Portu farklı olan bir sunucuyu bulmak için known_hosts'ta yazdığı gibi köşeli parantez ve portu da yazmanız gerekir.
ssh-keygen -H -f ~/.ssh/known_hostsWARNING: /home/user/.ssh/known_hosts.old contains unhashed entries
Delete this file to ensure privacy of hostnames
/home/user/.ssh/known_hosts updated.
Original contents retained as /home/user/.ssh/known_hosts.oldcat ~/.ssh/known_hosts|1|JL/knNlx/BnCoOWp5rNeRo3r1rE=|OCPyeFd1rgG8P2QGzrju/V2Y8c4= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID3s6oYeTCz7KeYs0f/60/Ix0DhmK4hf1uHCC10TrXyR
|1|AG9QJQvGaQmVsEusSdND1lM9cKI=|Ue0a9suJIzN0yxoJgV7ClLBgSYw= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID3s6oYeTCz7KeYs0f/60/Ix0DhmK4hf1uHCC10TrXyR-H ana bilgisayar adlarını ve adresleri karma hâline getirir. Dosya sızsa bile hangi sunuculara bağlandığınızın ortaya çıkmamasını sağlayan seçenektir; virgülle birleştirilmiş ad ve adres iki karma satıra ayrıldı. .old dosyasında karma öncesi içeriğin kaldığını söyleyen bir uyarı da çıktı.
ssh-keygen -F server2.example.com -f ~/.ssh/known_hosts# Host server2.example.com found: line 1
|1|JL/knNlx/BnCoOWp5rNeRo3r1rE=|OCPyeFd1rgG8P2QGzrju/V2Y8c4= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID3s6oYeTCz7KeYs0f/60/Ix0DhmK4hf1uHCC10TrXyRKarma hâline getirilmiş dosyada da -F satırı adıyla buldu.
6️⃣ ssh-copy-id ile açık anahtar kaydı ve authorized_keys
Anahtarı oluştursanız bile sunucu o açık anahtarı tanımıyorsa bağlantı yine şifreyle yapılır. Açık anahtarı sunucuya tanıtan yer, bağlanacağınız hesabın ~/.ssh/authorized_keys dosyasıdır; bu dosyaya .pub satırını ekleyen komut ise ssh-copy-id'dir. Özel anahtar bilgisayarınızda kalır, yalnızca tek satırlık açık anahtar karşıya geçer. Aşağıdaki diyagramda adım düğmelerine basınca iki dosyanın nereye yerleştiği görünür.
ssh-copy-id -n -i ~/.ssh/deploy_key.pub -o ConnectTimeout=3 user@192.0.2.10/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/user/.ssh/deploy_key.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: ERROR: ssh: connect to host 192.0.2.10 port 22: Connection timed out-n bir dry-run olduğundan sunucuya hiçbir şey yazmaz. Yine de ssh-copy-id önce o anahtarla giriş yapmayı deneyip kayıtlı anahtarları ayıklar; 192.0.2.10 belgeleme için ayrılmış bir adres olduğundan bağlantı kurulamadı ve timed out ile bitti. -o'dan sonraki seçenekler olduğu gibi ssh'a aktarılır.
ssh-copy-id -n -f -i ~/.ssh/deploy_key.pub -o ConnectTimeout=3 user@192.0.2.10/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/user/.ssh/deploy_key.pub"
=-=-=-=-=-=-=-=
Would have added the following key(s):
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKKphFOc7oiKNpIHFTzK/ippCS5U5D+lF3xmXM6dmYjk deploy@example.com
=-=-=-=-=-=-=-=-f bu kontrolü atlayan zorlama modudur. -n ile birlikte verilince sunucuya girecek tek satırlık açık anahtar Would have added altında çıktı. Bu, .pub dosyasının içeriğiyle aynı satırdır.
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@192.0.2.10Asıl kayıt, -n'yi çıkardığınız bu komutla yapılır. ssh-copy-id betiğine ve kılavuzuna göre bu komut o hesabın şifresini bir kez sorar, açık anahtarı sunucudaki ~/.ssh/authorized_keys dosyasının sonuna ekler ve ardından Number of key(s) added: 1 yazdırır. Dosya ve klasör yoksa oluşturur, aynı anahtar zaten varsa atlar.
ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 2222 user@192.0.2.10Port 22 değilse -p ile verin.
ssh-copy-id olmayan ortamlarda tek satırlık açık anahtarı sunucudaki authorized_keys dosyasına kendiniz ekleyin. Sunucuya şifreyle giriş yaptıktan sonra aşağıdaki sırayla ilerleyin. Çıktı, aynı sunucu içinde .pub dosyası eklenerek kontrol edildi; başka bir sunucuda .pub dosyasındaki satırı kopyalayıp echo ile ekleyin.
mkdir -p ~/.sshchmod 700 ~/.ssh.ssh klasörü yoksa oluşturun ve iznini 700 yapın.
cat ~/.ssh/deploy_key.pub >> ~/.ssh/authorized_keyschmod 600 ~/.ssh/authorized_keyscat ~/.ssh/authorized_keysssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKKphFOc7oiKNpIHFTzK/ippCS5U5D+lF3xmXM6dmYjk deploy@example.comls -l ~/.ssh/authorized_keys-rw------- 1 user user 100 Oct 29 08:22 /home/user/.ssh/authorized_keysauthorized_keys dosyasına tek satırlık açık anahtar girdi ve izni 600. sshd_config kılavuzunun StrictModes maddesinde, sshd'nin varsayılan ayarda önce kullanıcı dosyalarının izinlerini denetlediği ve herkesin yazabileceği bir izin varsa girişi kabul etmediği yazıyor.
ssh -i ~/.ssh/id_ed25519 user@192.0.2.10Kayıt bittikten sonra özel anahtarla bağlanın. Anahtar adı id_ed25519 gibi varsayılan bir adsa ssh onu kendisi bulur; deploy_key gibi başka bir adsa dosyayı ssh -i seçeneği ile belirtin.
🔲 ssh-keygen komut simülatörü
Aşağıdaki simülatörde ssh-keygen ile anahtar oluşturmayı, parmak izi kontrolünü, parola değiştirmeyi, known_hosts temizliğini ve ssh-copy-id'yi kendiniz yazarak deneyebilirsiniz. Parmak izleri ve açık anahtarlar yazıdakiyle aynı örnek değerlerdir; ssh-copy-id ise sanal sunucuya kaydediyormuş gibi yapar.
🔢 SSS & önerilen içerikler
Windows · Açık anahtar
Xshell'de açık anahtar oluşturma
Windows SSH istemcisi Xshell'in anahtar oluşturma sihirbazıyla açık anahtar oluşturup sunucuya kaydetme adımları.
SSH · Sunucu ayarları
SSH ayarları: sshd_config dosyasının işlevleri ve ayarları
Alıcı sunucudaki sshd_config dosyasında port, root girişi, açık anahtarla kimlik doğrulama gibi öğeleri ayarlamayı anlatan yazı.
Linux · Kavramlar
Linux'ta SSH: tanımı ve temel ayarlar
SSH'ın ne olduğu, Telnet'ten farkı ve sunucuda sshd'yi açıp temel ayarlarını kontrol etme yolu.
ℹ️ Satış ortaklığı bildirimi
Bu sitenin içeriklerinde satış ortaklığı bağlantıları bulunur. Bir ziyaretçi bu bağlantılar üzerinden ürün veya hizmet satın alırsa bu site satıcıdan komisyon alır. Bu süreçte alıcının ödediği tutar (kampanya indirimlerinde tutar düşer↓) artmaz. Yayımlanan fiyat, indirim ve stok bilgileri yazının yazıldığı zamana aittir ve gerçek durumdan farklı olabilir; bu yüzden satın almadan önce son bilgiyi satıcıdan kontrol etmenizi rica ederiz. Ürünler kendi ölçütlerimize göre seçilir ve değerlendirilir; komisyon alınıp alınmaması tanıtım sırasını veya değerlendirme içeriğini etkilemez.