SSH'mın ortak anahtarını nasıl dışa aktarabilirim?


12

Ben iki sunucu arasında ssh oturumları kurmak ve komut dosyası kullanıcı adı ve şifre her zaman doldurmak istemiyorum.

Ancak SSH sunucusunun yapılandırmasını nereden kullandığını bulamıyorum.

bash-2.05# ssh -V
Sun_SSH_1.1, SSH protocols 1.5/2.0, OpenSSL 0x0090700f

/ Etc / ssh / ve ~ / .ssh / klasörlerinde sertifika dosyalarım var. SSH için sadece bir yapılandırma dosyası bulabilirim ve / etc / ssh / ssh_config içinde, ancak veri içermiyor (her şey yorumlandı).

Herkes sertifikanın nerede saklandığını veya diğer sunucuya aktarabilmem için nasıl dışa aktarabileceğimi biliyor mu? Yapılandırma dosyalarının bana cevap vermesini umuyordum, ama çok az ya da hiç yardım sağlamıyorlardı.

Yanıtlar:


17

'Sertifika' ile kullanıcı düzeyinde ortak anahtar kimlik doğrulaması anlamına geldiğini ve bunları ssh-keygenvarsayılan konumla kullanarak oluşturduğunuzu varsayarsak , bunlar ssh istemcinizin onları bulacağı yerde olmalıdır. Anahtar, genellikle içinde depolanan özel bir kısım ~/.ssh/id_rsave içinde genel bir kısımdan oluşur ~/.ssh/id_rsa.pub. Sonuncusunun genellikle uzak sunucuya aktarılması gerekir ~/.ssh/authorized_keys.

Anahtarı başka bir sunucuya aktarmanın en kolay yolu ssh-copy-idhedef makineyle kullanmaktır. Oluşturma sırasında varsayılan konumu kullandıysanız, bu anahtar otomatik olarak kullanılacaktır.

Not, bu /etc/ssh/ssh_configistemci için. Sunucuda bakmanız gerekecek /etc/ssh/sshd_config. Kurulumunuzda her iki sunucu da ssh-client ve ssh-server olarak görev yapacak, böylece her iki uçtaki iki dosyaya da bakmanız gerekecek.


Çalıştı. Teşekkür ederim. Ekstra yapmak zorunda olduğum tek şey, özel anahtar işaret -i (kimlik) param belirtmek zorunda benim müşteri oldu.
Chris Dale

2

Komut dosyasının oturum açma kullanıcısı olacak kullanıcı için ssh ortak anahtarını bulmanız gerekir.

Örneğin, serverA ve serverB varsa, aşağıdakileri yaparım.

sudo adduser scriptrunner
...
sudo su - scriptrunner
ssh-keygen
...
cat .ssh/id_rsa.pub
ssh-rsa AAAAB3Nza...... scriptrunner@serverA

sonra ServerB'de benzer bir şey yapın

Daha sonra serverA'da serverB'nin komut dosyası kullanıcısının genel anahtarını /home/scriptrunner/.ssh/authorized_keys

ve bunun tersini serverB'de yapın (serverA'nın komut dosyası kullanıcısını serverB üzerindeki yetkili_anahtarlara kullanarak /home/scriptrunner/.ssh/authorized_keys)

Sonra ssh scriptrunner@serverAserverB'den anahtarı kullanarak yapabilmeniz gerekir , ya da tam tersi.

ssh-copy-idAuthor_keys bitini yapmak için de kullanabilirsiniz .


1

Ortak anahtar kimlik doğrulaması ile ssh bağlantısı kurmak için, bağlantıyı başlatan kullanıcının ortak / özel anahtar çiftine sahip olması gerekir. Birçok linux dağıtımında bu anahtarlar varsayılan olarak üretilmez ve kullanıcının kendisi (veya onların adına yönetici) tarafından oluşturulmaları gerekir.

İlgili kullanıcı olarak oturum açtıysanız, ana dizininize gidin ve çalıştırın

ssh-keygen

Tüm varsayılanları kabul ettiğinizde ~ / .ssh / id_rsa ve ~ / .ssh / id_rsa.pub içinde yeni bir anahtar çifti oluşturulacaktır. Şimdi ortak anahtarı kopyalayın ve hedef makinedeki hedef kullanıcı hesabının ~ / .ssh / authority_keys dosyasına yapıştırın. Ardından hedef makinede genel anahtar kimlik doğrulamasını etkinleştirin (/ etc / ssh / sshd_config içinde) ve gitmekte fayda var.

NOT : Bu işlemde ilk kez yaptığınızda olası birçok tuzak vardır. Tüm izinler doğru olmalı ve dosyalar doğru yerlerde olmalıdır. Eğer böyle bir NASIL belgesini izlerseniz Muhtemelen en iyisi bu bir .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.