Выполнить команду через два перехода по ssh

Una alternativa para aquellos que prefieren no editar los archivos predeterminados /etc/systemd/system.confy /etc/systemd/user/conf:

  1. crea un nuevo archivo /etc/systemd/system.conf.d/limits.confcon estos contenidos:

    [Manager]
    DefaultLimitNOFILE=1048576:2097152
    DefaultLimitNPROC=262144:524288
    
  2. ejecuta systemctl daemon-reexeccomo root

  3. cerrar sesión y volver a iniciar sesión

  4. verifique sus nuevos límites con ulimit -ao ulimit -ny ulimit -upara el máximo de archivos abiertos y el máximo de procesos, respectivamente.

Consulte la página de manualsystemd-system.confpara obtener más detalles.

1
14.08.2018, 17:03
2 ответа

Вам нужно использовать ProxyCommand в вашей конфигурации SSH. Так что, если вы не настроили свой ~/.ssh/config, я бы сослался на здесь

Итак, вы хотели бы сделать следующее:

  1. Разместите бастион в качестве агента пересылки в вашей конфигурации SSH.

  2. Используйте ProxyCommand для проксирования соединения с бастиона на целевой сервер.

Вот краткий пример:

Host <bastion>
    ForwardAgent yes

Host <target_server>
        User <user>
        Hostname <Ip/Hostname>
        ProxyCommand ssh -q -W %h:%p <user>@<bastion> nc 2> /dev/null
        IdentityFile ~/.ssh/id_rsa
2
27.01.2020, 23:42

Из командной строки я использую следующее для выполнения удаленных команд, например, для запуска topв целевой системе.

$ ssh -qt bastion "ssh -qt target \"top\"\"

Это будет работать даже с sudoили sudo su - userдля запуска от имени конкретного пользователя.

$ ssh -qt bastion "ssh -qt target \"sudo su - user1 -c 'ls -l'\""

Вот что делают опции sshв примерах.

  • ssh -q= тихо, подавляет баннеры с сервера, чтобы свести к минимуму отвлекающие факторы.
  • ssh -t= терминал, принудительное выделение псевдотерминала -, чтобы ориентированные на терминал команды, такие как topи sudo, принимали сеанс как интерактивный.
0
27.01.2020, 23:42

Теги

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