Bashrc функция с именем ssh не работает

Я создал функцию в моем файле bashrc, так что когда я ssh во что-то, он автоматически открывает сеанс tmux.

function ssht () {    
    /usr/bin/ssh $@ -t 'tmux a || tmux || /bin/bash'
}

Это прекрасно работает, но я не хочу использовать ssht, я хочу просто использовать ssh. Когда я изменяю функцию с ssht на ssh, tmux не открывается, но успешно выполняет ssh на машине.

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

Есть ли способ, которым я могу просто использовать "ssh" вместо "ssht"

1 ответ

Решение

Функция SSH Bash

Сделав функцию ssh для запуска чего-либо при входе в систему, вы сделали следующее:

function ssht () {    
    \ssh $@ -t 'tmux a || tmux || /bin/bash'
}

alias ssh=ssht
  • Добавление \ перед ssh временно отключает псевдоним.
  • ssht Функция остается прежней, но мы добавляем псевдоним ssh, который указывает на нее.
  • ВНИЗ: другие вещи могут сломаться, хороший пример - автоматическое завершение хостов из вашей конфигурации ssh

Команда SSH (Альтернатива)

В качестве альтернативы вы можете использовать встроенный SSH способ сделать это, добавив Command="tmux" перед вашим открытым ключом в authorized_keys файл. Может использоваться следующим образом:

command="echo howdy" ssh-rsa AAAAB3...
Другие вопросы по тегам