Условия задачи:
Есть локалхост и флешка с приватным ключом на ней, есть удаленный сервер с белым IP, на котором в т.ч. крутится NAT, и есть машина за натом (10.0.0.197), на которой сдуру настроена аутентификация по ключам онли.
Что надо: зайти на эту машину ssh-ем, не копируя приватный ключ на тот самый сервер с белым IP (назовем его nat.somedomain.ua). На nat.somedomain.ua разрешена аутентификация и по ключам, и PAM-аутентификация. Ключ для nat.somedomain.ua и 10.0.0.197 - один и тот же.
Решение:
a) На localhost:
# cp /etc/ssh/ssh_config /home/someuser/.ssh/config
# ee /home/someuser/.ssh/config
добавляем строки
Host nat.somedomain.ua
HostKeyAlias nat
Port 2222
User someuser
LocalForward localhost:8888 10.0.0.197:2222
IdentityFile /home/someuser/usb-key/SERVKEYS/ID_RSA
Tunnel yes
b) Создаем туннель:
> ssh -v -p 2222 -f nat.somedomain.ua -L 8888:10.0.0.197:2222 sleep +1d
и теперь логинимся на удаленную машину за натом таким образом:
> ssh -v -i /home/someuser/usb-key/SERVKEYS/ID_RSA -p 8888 localhost
Готово!
P.S.
Всё это работает, только если предварительно в другой консоли зайти по ssh на nat.somedomain.ua.