2

в файле .ssh/config

Сценарий состоит в том, что у меня есть два общедоступных ips (динамический), один - для подключения к aws, а другой - для подключения к стойке.

Оба требуют различных ключей Pem для подключения. Но я хочу использовать конфигурационный файл ssh, чтобы сэкономить мое время

Host <ip1> 
User root
Port 22
HostName %h
IdentityFile ~/.ssh/aws.pem

Host <ip2> 
User root
Port 22
HostName %h
IdentityFile ~/.ssh/rackspace.pem

Из этого параметра я не могу отличить, какой pem-файл использовать. Я хочу использовать хост как часть параметра, чтобы указать, к какому серверу подключиться, например, ssh aws-ip1 ssh rack-ip2

тогда файл конфигурации может отличить, какой файл pem использовать

Кто-нибудь знает, как это сделать?

3 ответа3

1

Хорошо... Этот вопрос очень старый. Тем не менее, я могу придумать способ, который поможет в подобных сценариях. Используя здесь символы подстановки (*) и% h.

Предположим, что IP-адрес Amazon равен 10.10.20. *, А Rackspace IP - 20.20.10.*. Следующий конфиг поможет:

Host 10.10.20.*
    Hostname %h
    User root
    IdentityFile ~/.ssh/aws.pem

Host 20.20.10.*
    Hostname %h
    User root
    IdentityFile ~/.ssh/rackspace.pem

И затем вызов, скажем, ssh 10.10.20.5 вызовет что-то вроде ssh -i ~/.ssh/aws.pem root@10.10.20.5 , что может потребоваться.

0

Часть «Хост» является своего рода «ярлыком», который вы можете использовать:

Host aws-ip1
    HostName ip-or-name-to-ip1
    IdentityFile ~/.ssh/aws.pem

Host rack-ip2
    HostName ip-or-name-to-ip2
    IdentityFile ~/.ssh/rackspace.pem

и тогда вы просто используете ssh aws-ip1 или ssh rack-ip2 ...

Процитирую от man ssh-config:

Host    Restricts the following declarations (up to the next Host key-
        word) to be only for those hosts that match one of the patterns
        given after the keyword.
0

Другой вариант - использовать простые псевдонимы оболочки старой школы:

 alias ssh_rack="ssh -i .ssh/rackspace.pem"
 alias ssh_aws="ssh -i .ssh/aws.pem"

а затем использовать их вместо ssh .

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