Otomatik girişe izin vermek için .ssh/config içinde parola ayarlayabilir misiniz?

Ubuntu 11.10 kullanıyorum. Günlük olarak birçok sunucuya bağlanmak için ssh kullanıyorum, bu yüzden parametrelerini .ssh/config dosyasına şu şekilde koyuyorum:

Host Home
User netmoon
Port 22
HostName test.com

Bu dosyaya her bağlantı için parola koymanın bir yolu var mı, böylece sunucu parola istediğinde terminal parolasını girer ve sunucuya gönderir?

Buna ihtiyacım var çünkü bazen bilgisayardan uzaklaşıyorum ve geri döndüğümde bir şifre yazıp Enter tuşuna bastığımda terminal CONNECTION CLOSED diyor.

Not: Açık/özel anahtar çifti kullanmak istemiyorum.

Eğer gerçekten açık/özel anahtar çifti kullanmak istemiyorsanız, hedef adrese bağlı olarak şifreyi sizin için otomatik olarak girecek bir expect betiği yazabilirsiniz.

Düzenleme: Demek istediğim, bir yandan sizin için şifreyi girmek için expect kullanan ve diğer yandan belirli bir kullanıcı ve ana bilgisayar için şifreyi bir yapılandırma dosyasından okuyan bir betiğe sahip olabilirsiniz. Örneğin, aşağıdaki python betiği sunny day senaryosu için çalışacaktır:

#!/usr/bin/python                                                                                                                        
import argparse
from ConfigParser import ConfigParser
import pexpect

def main(args):
    url = args.url
    user, host = url.split('@', 1)

    cfg_file = 'ssh.cfg'
    cfg = ConfigParser()
    cfg.read(cfg_file)
    passwd = cfg.get(user, host)

    child = pexpect.spawn('ssh {0}'.format(url))
    child.expect('password:')
    child.sendline(passwd)
    child.interact()

if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='Run ssh through pexpect')
    parser.add_argument('url')
    args = parser.parse_args()
    main(args)

ve yapılandırma dosyası formatı aşağıdaki gibi olacaktır:

[user_1]
host1 = passwd_1
host2 = passwd_2

[user_2]
host1 = passwd_1
host2 = passwd_2

Not: Açıklandığı gibi, python betiğinin ssh'den gelen tüm olası hataları ve soru mesajlarını ve tüm olası URL'leri işlemek için çok daha karmaşık olması gerekir (örnekte user@host' gibi bir şey olacağı varsayılmıştır, ancak kullanıcı kısmı çoğu zaman kullanılmaz), ancak temel fikir yine de aynı olacaktır. Yapılandırma dosyası ile ilgili olarak, farklı bir yapılandırma dosyası kullanabilir veya.ssh/config` dosyasını kullanabilir ve bu dosyayı ayrıştırmak ve belirli bir kullanıcı ve ana bilgisayar için parola almak için kendi kodunuzu yazabilirsiniz.

Yorumlar (4)

Hayır. Korkarım bu mümkün değil.

Tek gerçek alternatif özel anahtarlar kullanmaktır, ancak siz bunu istemediğinizi söylediniz (neden olmasın?).

Yorumlar (6)

BrunoPereira'nın bu soruya verdiği yanıt, açıkça bir parola girmeden ve ssh anahtarlarından kaçınarak bağlanmak için alternatif bir yöntem göstermektedir.

Bu komutu hızlı bir şekilde çalıştırmak için ~/.bashrc dosyanızda bir komut dosyası, takma ad veya bir işlev oluşturabilirsiniz.

Açıkçası, bu yaklaşımda dikkate almanız gereken güvenlik hususları vardır.

Yorumlar (1)