SSH tekli oturum açma genellikle ortak anahtar kimlik doğrulaması ve bir kimlik doğrulama aracısı ile gerçekleştirilir. Test VM anahtarınızı mevcut bir auth agent'a kolayca ekleyebilirsiniz (aşağıdaki örneğe bakın). Gssapi / kerberos gibi diğer yöntemler var, ancak daha karmaşık.
sshpass
password
Mevcut olan tek kimlik doğrulama yönteminin olduğu durumlarda , otomatik olarak şifreyi girmek için sshpass kullanılabilir. Lütfen man sayfasının GÜVENLİK ÖNEMİ bölümüne dikkat edin . Her üç seçenekte de , şifre belli bir noktada düz metin olarak görünür veya saklanır :
Anonim boru (sshpass tarafından önerilir)
# Create a pipe
PIPE=$(mktemp -u)
mkfifo -m 600 $PIPE
# Attach it to file descriptior 3
exec 3<>$PIPE
# Delete the directory entry
rm $PIPE
# Write your password in the pipe
echo 'my_secret_password' >&3
# Connect with sshpass -d
sshpass -d3 ssh user@host
# Close the pipe when done
exec 3>&-
Programlama dilleri ile tartışmasız daha kolay, bash oldukça hantal. Şifre yazılmadan önce pip / fd'ye başka bir işlem eklenebilir. Fırsat penceresi oldukça kısa ve süreçleriniz ya da köklerinizle sınırlı.
Çevre değişkeni
# Set your password in an environment variable
export SSHPASS='my_secret_password'
# Connect with sshpass -e
sshpass -e ssh user@host
Siz ve root, sshpass çalışırken ( cat /proc/<pid>/environ | tr '\0' '\n' | grep ^SSHPASS=
) işleminizin çevre değişkenlerini (yani şifreniz) okuyabilirsiniz . Fırsat penceresi çok daha uzun ancak yine de diğer kullanıcılar için değil, kendi süreçleriniz veya kökünüz ile sınırlı.
Komut satırı argümanı (en az güvenli)
sshpass -p my_secret_password ssh user@host
Bu uygun, ancak man sayfasında açıklandığı gibi daha az güvenlidir. Komut satırı argümanları tüm kullanıcılar tarafından görülebilir (örn. ps -ef | grep sshpass
). sshpass, argümanı gizlemeye çalışır, ancak tüm kullanıcıların parolanızı argüman tarafından geçirilen parolayı görebildikleri bir pencere vardır .
Kenar notu
Bash HISTCONTROL değişkenini , hassas komutlarınızı bir boşlukla ignorespace
veya veya üstüne ignoreboth
getirin. Tarihe kaydedilmeyecekler.
SSH ortak anahtar kimlik doğrulaması
# Generate a key pair
# Do NOT leave the passphrase empty
ssh-keygen
# Copy it to the remote host (added to .ssh/authorized_keys)
ssh-copy-id user@host
Parola çok önemlidir. Bir şekilde özel anahtar dosyasını edinen hiç kimse, şifreyi kullanmadan kullanamaz.
SSH kimlik doğrulama aracısını kurun
# Start the agent
eval `ssh-agent`
# Add the identity (private key) to the agent
ssh-add /path/to/private-key
# Enter key passphrase (one time only, while the agent is running)
Her zamanki gibi bağlan
ssh user@host
Bunun avantajı, özel anahtarınızın şifrelenmiş olmasıdır ve parolasını yalnızca bir kez girmeniz gerekir (daha güvenli bir giriş yöntemi ile).