Выполнение задания крона, но не установление туннеля

У вас были включены параметры auto_cd и cdable_vars . В auto_cd , если вы вводите каталог в качестве имени команды, подразумевается команда cd . С cdable_vars , если каталог не существует или команда не существует с auto_cd , то имя ищется в хэш-таблице каталога.

Пока вы используете систему завершения «нового стиля» ( compinit ), которая включается oh-my-zsh, имя будет предлагаться в качестве завершения, когда это необходимо.

2
14.05.2014, 16:00
1 ответ

Спасибо @Andrew за указание на ssh-agent. Насколько я понимаю, если вы хотите иметь возможность устанавливать туннель без необходимости вводить пароль каждый раз, пароль должен быть сохранен или удален. Я выбрал удалить его. Для протокола, вот некоторые исправления, основанные на комментариях, которые я получил:

#!/usr/bin/env bash

# Establish tunnel
createTunnel() {
    /usr/bin/ssh -i /home/laptopuser/.ssh/id_rsa_tunnel -R 2200:localhost:22 vpsuser@vps.com
}

# Do nothing if tunnel is already established
/usr/bin/ssh -i /home/user/laptopuser/.ssh/id_rsa_tunnel -p 2200 laptopuser@vps.com true
if [[ $? -ne 0 ]]; then
    createTunnel
fi

crontab:

# m h  dom mon dow   command
*/1 *   *   *   *   /home/laptopuser/bin/establishTunnel.sh

скопируйте свой идентификатор туннеля на vps:

ssh-copy-id -i /home/user/laptopuser/.ssh/id_rsa_tunnel vps.com

подождите, пока туннель не будет запущен (см. sudo watch grep CRON /var/log/syslog) и скопируйте свой обычный идентификатор, если вы еще не получили его в ~/.ssh/authorized_keys

ssh-copy-id vps.com -p 2200

В идеале туннель должен работать как выделенный пользователь и на vps, и на ноутбуке.

0
27.01.2020, 23:10

Теги

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