Wednesday, April 25, 2012

SCP Agent Forward-dal

Felmerült a feladat, hogy SCP-zzek olyan gépre ahova csak SSH Agent Forward-dal lehet bejutni. (Igazábol egy SCB követelte meg a dolgot.)

A probléma az, hogy az SCP alapból nem továbbít SSH Agent-et. De szerencsére rátaláltam erre az írásra,  ami megadta a megoldást.

A probléma gyökere az, hogy az SCP amikor meghívja az SSH-t akkor alaból kikapcsolja az Agent továbbítást, és ezt nem lehet felülbírálni sem a ~/.ssh/config szerkesztésével, sem a -A parancssori opcióval.

Szerencsére van az SCP-nek egy -S opciója, ahol meg lehet adni, hogy milyen SSH binárist futtasson. Így ha írunk egy wrappert, ami kiszedi a default Agent Forward tiltást az SCP által az SSH-nak átadott opciókból akkor nyert ügyünk van. Mentsük el a következő 3 soros kis script-et valami néven, például ssh-wrapper, adjunk rá végrehajtási jogot

#!/usr/bin/perl

exec '/usr/bin/ssh', map {$_ eq '-oForwardAgent no' ? '-oForwardAgent yes' : $_} @ARGV;

majd ezek után az SCP-t futtassuk a következő módon

$ scp -S ./ssh-wrapper some-file my-server:

végül dőljünk hátra elégedetten!:)

No comments: