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.
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.