Как помнить ssh пароль с lsyncd?

[115843]Google говорит 2 пробела: [116177]Shell Style Guide - Indentation | google.github.io

Согласитесь с другими, что это произвольный выбор.

if [ -f `brew --prefix`/etc/bash_completion.d/git-completion.bash ]; then
. `brew --prefix`/etc/bash_completion.d/git-completion.bash
fi

Примечание[116180]: Если ссылка выше не сработает в будущем, то полный проект стиля Google размещен здесь: [116181]Руководства по стилю для проектов с открытым исходным кодом Google | github.com

brew info git

2
21.01.2015, 12:22
1 ответ

ZSH имеет крючок reexec , который выполняет функцию перед выполненной командой, введенной в командной линии. Вот крючок, который ищет SSH в вашей командной строке и, если он найден, проверяет существование агента SSH. Если это не найдено, он запускает брелок.

Таким образом, keychain работает только перед SSH-командами, а затем только при необходимости.

Положите это в ваш ~ / .zshrc :

function check_ssh {
  [[ $3 =~ '\bssh\b' ]] || return
  [[ -n "$SSH_AGENT_PID" && -e "/proc/$SSH_AGENT_PID" ]] \
    && ssh-add -l >/dev/null && return
  eval `keychain --eval id_dsa --timeout 60`
}    
autoload -U add-zsh-hook
add-zsh-hook preexec check_ssh

Что здесь происходит всякий раз, когда команда набирается, Check_SSH вызывается перед выполнением команды.

Первая строка функции проверяет расширенную команду для SSH , используя ZSH Regex. SSH должен иметь границы слова \ b в обе стороны. Если это не найдено, то функция возвращается.

Следующая строка проверяет, что в переменной среде есть процесс агента SSH, и что этот процесс существует в таблице процессов, а затем добавляли хотя бы один ключ к агенту. Если все это нормально, то SSH-агент устанавливается, и нам не нужно ничего делать, поэтому он возвращает.

Наконец мы начнем брелок с агентом, который должен быть живым в течение часа.

Он по-прежнему покидает проблему о встроенных SSH, таких как Git или rsync или SCP , так как это не запускает функцию (вы можете добавить их на регеекс).

-121--28706-

Попробуйте аутентифицировать с ключом SSH. Любая программа, использующая SSH для передачи, автоматически найдет ключ и не нужен пароль.

Просто запустите

ssh-keygen -t rsa -f ~/.ssh/id_rsa

, затем добавьте свой новый ~ / .ssh / id_rsa.pub на удаленной стороне ~ / .ssh / aperized_keys файл

ssh USER@REMOTE_HOST 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

, а теперь вы должны Уметь SSH на удаленный хост без пароля.

Это, как правило, является лучшей идеей, чем сохранение вашего пароля в файл, поскольку вы можете использовать этот пароль другие места, и если кто-то нашел его, у вас будут скомпрометированы несколько вещей.

2
27.01.2020, 22:12

Теги

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