openssh madness

Wednesday, 29 May 2013 14:40
gns_ua: (russe)
[personal profile] gns_ua
Кажется openssh немного по-дебильному написан.

Вот есть SSH_ASKPASS, да? Но она используется ТОЛЬКО если нет связанного терминала И переменная DISPLAY непустая И стоит BatchMode=no (иначе парольная аутентификация вообще отключается).

- The option BatchMode specifies whether a username and password querying on connect will be disabled. This option is useful when you create scripts and dont want to supply the password.

Минимально необходимый набор, соответственно:

cmd = ['ssh', '-oPubkeyAuthentication=no', blablabla] # а то у некоторых серверов четыре попытки ключа и превед
# плеснуть по вкусу немного '-oStrictHostKeyChecking=no' и -F/dev/null
my_env = os.environ
my_env['SSH_ASKPASS'] = '/tmp/getpass'
my_env['DISPLAY'] = ':999' # guyz, SRSLY, WTF you need it for???
p = subprocess.Popen(cmd, env = my_env, preexec_fn=os.setsid)


Дальше выясняется что аскпасу отдают буквально строку "test@localhost's password:" и больше ничего. И как, скажите, это говно скриптовать?

Profile

gns_ua: (Default)
gns_ua

April 2017

M T W T F S S
     12
3456789
10111213141516
17181920212223
24252627282930

Expand Cut Tags

No cut tags