Synopsis
ssh-copy-id [-f] [-n] [-s] [-x] [-i [identity_file]] [-t target_path] [-F ssh_config]
[[-o ssh_option] ...] [-p port] [user@]hostname
ssh-copy-id -h | -?
Description
ssh-copy-id, uzak bir makinede oturum açmak için ssh(1) kullanan bir betiktir (muhtemelen bir oturum açma şifresi kullanarak, bu nedenle birden fazla kimliğin akıllıca bir kullanımını yapmadıysanız şifre kimlik doğrulaması etkinleştirilmelidir). Bir veya daha fazla parmak izinin (aşağıda açıklandığı gibi) bir listesini bir araya getirir ve hangilerinin önceden yüklenmiş olduğunu görmek için her bir anahtarla oturum açmayı dener (elbette ssh-agent(1) kullanmıyorsanız bu, tekrar tekrar parola sormanıza neden olabilir). Daha sonra oturum açamayanların bir listesini toplar ve ssh(1) kullanarak bu anahtarlarla uzak sunucuda oturum açmayı etkinleştirir. Varsayılan olarak, anahtarları uzak kullanıcının ~/.ssh/authorized_keys dosyasına ekleyerek (gerekirse dosyayı ve dizini oluşturarak) ekler. Ayrıca uzak sistemin bir NetScreen olup olmadığını tespit edebilir ve bunun yerine ‘set ssh pka-dsa key ...’ komutunu kullanabilir.
Seçenekler aşağıdaki gibidir:
-i [identity_file] Yalnızca identity_file içinde yer alan anahtarları kullanır (kimlikleri ssh-add(1) aracılığıyla veya default_ID_file içinde aramak yerine). Dosya adı .pub ile bitmiyorsa bu eklenir. Dosya adı belirtilmezse, default_ID_file kullanılır.
Bunun, kopyalama girişiminde bulunulmadan önce anahtar dosyasında tercih edilen yorumların ve/veya ekstra seçeneklerin ayarlanmış olduğundan emin olunarak kopyalanan anahtarların tercih edilen yoruma sahip olmasını sağlamak için kullanılabileceğini unutmayın.
-f: Zorunlu mod: Anahtarların uzak sunucuda bulunup bulunmadığını kontrol etmez. Bu, özel anahtara (private key) ihtiyaç duymadığı anlamına gelir. Elbette bu, anahtarın uzak sisteme birden fazla kopyasının yüklenmesine neden olabilir.-n: Bir deneme çalıştırması (dry-run) yapar. Anahtarları uzak sisteme yüklemek yerine yalnızca yüklenecek olan anahtarları yazdırır.-s: SFTP modu: Genellikle açık anahtarlar uzak tarafta komutlar çalıştırılarak yüklenir. Bu seçenekle kullanıcının ~/.ssh/authorized_keys dosyası indirilecek, yerel olarak değiştirilecek ve sftp ile yüklenecektir. Bu seçenek, sunucunun uzak tarafta kullanılabilecek komutlar üzerinde kısıtlamaları varsa kullanışlıdır.
-t target_path Anahtarların ekleneceği hedef sistemdeki yol (varsayılan olarak ".ssh/authorized_keys" değerine ayarlanır)
-p port Uzak ana bilgisayara bağlanmak için portu belirtir.
-F ssh_config, -o ssh_option Bu seçenekler ssh/sftp programlarına dokunulmadan (bağımsız değişkenleriyle birlikte) olduğu gibi iletilir; sırasıyla alternatif bir yapılandırma dosyası veya diğer seçeneklerin ayarlanmasına olanak tanır.
Bunları komut satırı seçenekleri olarak belirtmek yerine, ssh(1) yapılandırma dosyası olan ssh_config(5) içindeki (ana bilgisayar başına) ayarları kullanmak genellikle daha iyidir.
-x: Bu seçenek ssh-copy-id betiğinin kendisinde hata ayıklamak içindir. Çalıştırılan komutları görebilmeniz için kabuğun -x bayrağını ayarlar.-h, -?: Kullanım özetini yazdırır.
-i olmadan varsayılan davranış, ‘ssh-add -L’ komutunun herhangi bir çıktı verip vermediğini kontrol etmektir ve eğer veriyorsa bu anahtarlar kullanılır. Bunun, anahtar üzerindeki yorumun, anahtar ssh-agent(1) içine yüklendiğinde ssh-add(1) aracına verilen dosya adı olmasına neden olduğunu, dosya içeriğindeki yorum olmadığını unutmayın; bu biraz yazık bir durumdur. Aksi takdirde, ssh-add(1) hiçbir anahtar sağlamazsa, default_ID_file içeriği kullanılacaktır.
default_ID_file, /.ssh/id*.pub kalıbıyla eşleşen (/.ssh/*-cert.pub ile eşleşenler hariç) en yeni dosyadır; bu nedenle ssh-copy-id'nin kullanmasını istemediğiniz bir anahtar oluşturursanız, en yeni dosya olarak yeniden eski haline getirmek için tercih ettiğiniz anahtarın .pub dosyasında touch(1) kullanmanız yeterlidir.
Examples
Bir sistemdeki anahtarları birçok uzak ana bilgisayara zaten yüklediyseniz ve ardından yeni bir istemci makinede yeni bir anahtar oluşturursanız, yeni anahtarı hangi sistemlere yüklediğinizi takip etmek zor olabilir. Bununla başa çıkmanın bir yolu, hem yeni anahtarı hem de eski anahtarları ssh-agent(1) içine yüklemektir. Önce yeni anahtarı -c seçeneği olmadan yükleyin, ardından eski bir veya daha fazla anahtarı, muhtemelen agent yönlendirmesine izin vermek için -A seçeneğini kullanarak o eski anahtara sahip istemci makineye ssh yaparak aracıya yükleyin:
user@newclient$ ssh-add
user@newclient$ ssh -A old.client
user@oldl$ ssh-add -c
... parola sorulur ...
user@old$ logoff
user@newclient$ ssh someserver
Şimdi, eğer yeni anahtar sunucuya yüklendiyse, parola sorulmadan içeri girmenize izin verilir; oysa yalnızca eski anahtarlar etkinleştirildiyse, onay istenir ve bu da oturumu kapatıp şunu çalıştırmanız için bir işarettir:
user@newclient$ ssh-copy-id -i someserver
Bu durumda -i seçeneğini belirtmek istemenizin nedeni, yüklü anahtardaki yorumun aracıya yüklenen dosya adı yerine .pub dosyasındaki yorum olduğundan emin olmaktır. Ayrıca, ssh-agent(1) içindeki tüm anahtarlarınız yerine yalnızca istediğiniz kimliğin yüklenmesini sağlar. Elbette başka bir kimlik belirtebilir veya tercih ettiğiniz gibi ssh-agent(1) içeriğini kullanabilirsiniz.
ssh-add(1)'in -c seçeneğinden bahsetmişken, anahtarınızın ele geçirilmesini önlemek için aracı yönlendirmesini her kullandığınızda bunu kullanmayı düşünebilirsiniz; ancak bunun yerine her zaman doğrudan uçtan uca kimlik doğrulaması yaparken uzak sunuculardan atlamak için ssh(1)'in ProxyCommand ve -W seçeneğini kullanmak çok daha iyidir. Bu şekilde, ortadaki duraklar ssh-agent(1) aracınıza erişemez. ‘ssh proxycommand nc’ için yapılacak bir web araması aydınlatıcı olacaktır (Not: modern yaklaşım nc(1) yerine -W seçeneğini kullanmaktır).
See Also
ssh(1), ssh-agent(1), sshd(8)
macOS 26.4 June 17, 2010 macOS 26.4