OpenSSH - отобразите псевдонимы в ~/.ssh/config к IP-адресам в командной строке

Если это всегда - та же конфигурация программ, можно использовать инструмент как teamocil.

Необходимо будет создать с конфигурацией (например. ~/.teamocil/sample), который содержит что-то как:

windows:
  - name: my-first-window
    root: ~/Projects/foo-www
    filters:
      before: "rvm use 1.9.2"
      after: "echo 'I am done initializing this split.'"
    splits:
      - cmd: "git status"
      - cmd: "bundle exec rails server --port 4000"
        width: 50
      - cmd:
          - sudo service memcached start
          - sudo service mongodb start
        height: 50

И затем можно работать: tmux new-session -d "teamocil sample" \; attach

9
28.01.2013, 21:09
4 ответа

Если я понимаю, что Вы просто хотите IP-адрес, возвращенный, т.е., 192.168.1.1, то это - одно (невероятно хрупкий) способ запросить файл из командной строки, если у Вас есть соответствующие полномочия считать его и Ваш .ssh/config последовательно форматируется:

awk '/Host $youralias/ {getline; print $2}' .ssh/config


Я только отправляю это, поскольку я хотел бы понять, как использовать awk чтобы сделать это, но мое знание, очевидно, вполне ограничено.

2
27.01.2020, 20:08

Не полностью уверенный, что Вы спрашиваете...

Скажите, что у Вас есть псевдоним SSH для 'mainserver', таким образом, можно сделать ssh mainserver. Если Вы хотите, чтобы это также работало на ping mainserver, необходимо вставить псевдоним /etc/hosts, как так:

/etc/hosts:

192.168.0.1 comp-one
192.168.0.2 comp-two

192.168.0.20 mainserver

Затем Вы могли сделать ping mainserver и это проверило бы с помощью ping-запросов 192.168.0.20.

1
27.01.2020, 20:08

Файл, который Вы упоминаете, является текстовым файлом, он содержит имена хостов и возможно IP-адреса для идентификации машин, с которыми Вы соединяетесь. Имена хостов могут быть разрешены к IP-адресам с помощью host(1) команда. Формат довольно прост, таким образом, не слишком трудно узнать то, что там. Обратите внимание, что подстановочные знаки могут использоваться в файле (состояния шахты *.fedoraproject.org).

-1
27.01.2020, 20:08

Это немного более надежный способ получения HostName на основе Host в файле .ssh/config.

sshalias()
{
    awk "\$1==\"Host\" {host=\$2} \$1==\"HostName\" && host==\"$1\" {print \$2}" "$HOME/.ssh/config"
}
0
27.01.2020, 20:08

Теги

Похожие вопросы