ssh uzak sunucu 22 dışında bazı portlarda şifre olmadan


16

Genellikle uzak sunucuya

ssh user@server.com -p 11000

ve kullanıcı için her seferinde şifreyi vermek. Ssh kullanarak her bağlandığımda şifreyi girmekten nasıl kaçınmalıyım?

Yanıtlar:


23

İlk önce şunu koyun ~/.ssh/config:

Host server
HostName server.com
Port 11000
User user

Sen mümkün olacak ssh server, daha sonra şifreyi yazın.

İkinci olarak , ve ~/.ssh/adında dosyalarınız olup olmadığını kontrol edin . Değilse, ayarlanmış bir anahtarınız yoktur, bu nedenle kullanarak bir çift oluşturmanız gerekir . Anahtarlara bir şifre verebilir veya vermeyebilirsiniz. Oluşturulan dosya şöyle görünmelidir:id_rsaid_rsa.pubssh-keygenid_rsa.pub

ssh-rsa lotsofrandomtext user @ local

Üçüncü olarak, sunucuya ssh dosyasını ~/.ssh/authorized_keysyoksa dosyayı oluşturun . Ardından, ~/.ssh/id_rsa.pubdaha önce oluşturduğunuz içeriğin içeriğini buraya ekleyin . Bu, dosya içeriklerini panonuza kopyalamak, sonra ~/.ssh/authorized_keysbir metin düzenleyicide açmak ve bir şeyi yapıştırmak anlamına gelebilir .

Alternatif olarak, komutu kullanın ssh-copy-id server( serveriçindeki adla değiştirin ~/.ssh/config). Bu yukarıdakiyle aynı şeyi yapacaktır. Bazen ssh-copy-idtakıldığımı gördüm , bu yüzden gerçekten sevmiyorum.

ssh serverÖzel anahtarınızı bir parola ile korumayı seçmediyseniz, şimdi sadece ssh yapabilmeniz gerekir . Genellikle bir parola kullanmazsanız, özel anahtarınızı başka yollarla (örn. Tam disk şifrelemesi) korumalısınız.

Dördüncüsü (yalnızca özel anahtarınızı bir parola ile koruyorsanız gerekir), şunu koyun~/.bashrc :

start_ssh_agent() {
    # Try to use an existing agent
    save=~/.ssh-agent
    if [[ -e "$save" ]]
    then
        . "$save" > /dev/null
    fi
    # No existing agent, start a new one
    if [[ -z "$SSH_AGENT_PID" || ! -e "/proc/$SSH_AGENT_PID" ]]
    then
        ssh-agent > "$save"
        . "$save" > /dev/null
        ssh-add
    fi
}
start_ssh_agent

Bununla, bilgisayar önyüklemesi başına parolayı yalnızca bir kez girmeniz gerekecektir.


2
'Anlatı' aynı zamanda bu sinir bozucu parolayı her zaman yazmaktan nasıl kaçınacağınıza dair bir tartışma içermelidir. :-) ssh-agent ve / veya anahtarlık dikkate alınması gereken olanaklardır.
Faheem Mitha

1
Ayrıca, uzak ana bilgisayardaki kullanıcı adınız yerel ana bilgisayardaki kullanıcı adınızla aynı değilse, öğesine bir User usersatır ekleyebilirsiniz ~/.ssh/config.
cjm

@Faheem Bu güzel, ama ben asla böyle bir şey kurmadım, bu yüzden başkalarına bu konuda talimat verecek bir konumda olduğumu düşünmüyorum :)
phunehehe

@FaheemMitha orada sen gitmek :)
phunehehe

Hey, hiç olmadığı kadar iyi.
Faheem Mitha


4

Phunehehe'nin cevabına ek olarak, anahtarlık kılavuzu için Gentoo Linux Anahtarlık Kılavuzu'na bakın . Anahtarlık ayrıca ssh-agent kullanır . Ssh-agent daemon, parolayı kullanılabilir kılar (ssh-agent daemon öldüğünde kullanılamaz hale gelir), ancak kılavuzu alıntılamak için anahtarlık .reuses an ssh-agent between logins, and optionally prompts for passphrases each time the user logs in

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.