1

В настоящее время у меня есть система, в которой я использую рабочий стол для подключения к шлюзу, а затем к нескольким серверам оттуда. Ключ ssh моего рабочего стола находится в шлюзе и на других серверах, и я запускаю скрипты с рабочего стола, которые используют это соединение, которые имеют такие вещи, как

ssh -A $GATEWAY "ssh $SERVER \"./myscript $OPTIONS\""

Проблема заключается в том, что, когда я подключаюсь со своего домашнего компьютера к основному рабочему столу и использую тот же сценарий, он пытается использовать ключ ssh домашнего компьютера, даже если я не использую -A при подключении к рабочему столу. Есть ли способ указать, какой ssh-ключ использовать при подключении?

Я пытался сделать

ssh -i ~/.ssh/id_rsa -A $GATEWAY "ssh $SERVER \"./myscript $OPTIONS\""

но это все еще не работает. Я не подключаюсь к основной машине с -A, я просто делаю ssh -i .ssh/loac_id_rsa user@main .

1 ответ1

1

Это странно. Может быть, у вас есть что-то в .ssh/config файлах?

Попробуйте выполнить

ssh-add ~/.ssh/id_rsa

когда вы приходите на рабочий стол

РЕДАКТИРОВАТЬ:

И если он не попробует eval ssh-agent -s первым.

Так как это сработало:

-A означает "подключиться к агенту аутентификации". Ваш шлюз, безусловно, нуждается в том, чтобы агент аутентификации работал на вашем рабочем столе, чтобы переадресовать ваше соединение на защищенный хост. Агент аутентификации, вероятно, запускается автоматически, когда вы входите в систему на своем рабочем столе с помощью графического интерфейса, но, очевидно, когда вы входите в систему с помощью ssh, он не работает так, как вы хотите (он только берет ваш домашний ключ, а ssh-add не работает ). Итак, вы запускаете новый и подключаетесь к нему, добавляете свой ключ, и он работает.

Возможно, вы могли бы немного упростить и заменить

home$ ssh -i .ssh/loac_id_rsa user@main
desk$ eval `ssh-agent -s`
desk$ ssh-add ~/.ssh/id_rsa
desk$ ssh -A $GATEWAY "ssh $SERVER \"./myscript $OPTIONS\""

с

home$ ssh -i .ssh/loac_id_rsa user@main ssh-agent bash
desk$ ssh-add ~/.ssh/id_rsa
desk$ ssh -A $GATEWAY "ssh $SERVER \"./myscript $OPTIONS\""

или если вы будете делать это регулярно, вы можете поиграться с содержимым ~/.ssh/rc (будьте осторожны, поскольку, если вы что-то сломаете, возможно, вы не сможете войти через ssh, вам придется исправить вход в консоль).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .