Я - действительно смущенные парни. Я очень плохо знаком с Linux, но все еще: Я пытаюсь сделать
hg pull ssh://hg@bitbucket.org/repo
на VPS через Paramiko из Python на моем ноутбуке. Я уже добавил общедоступный ключ SSH к Битоприемнику и частный к id_rsa. Когда я даю команду выше вручную (в командной строке), меня просят относительно пароля к моему ключу. По любой причине это не примет stdin через Paramiko. Таким образом, как обходное решение я решил просто сделать
echo 'passphrase\n' | hg pull ssh://hg@bitbucket.org/repo
Но даже в командной строке это не работает и продолжает просить "Вводить пароль для ключа '/home/droplet/.ssh/id_rsa'". Я также попробовал
hg pull ssh://hg@bitbucket.org/repo <<< 'passphrase\n'
Тот же результат. Вы могли объяснить почему? Я ожидал бы, что эти команды обеспечивают вход, который будет использоваться "hg получение по запросу", когда это попросит вход пользователя.
Необходимо быть хороши с sshpass
инструмент:
sshpass -p passphrase hg pull ssh://hg@bitbucket.org/repo
Или с хранением ключа в Ваш ssh-agent
прежде (примечание, что, если агент не работает, необходимо запустить его с помощью eval $(ssh-agent)
):
ssh-add /home/droplet/.ssh/id_rsa
затем эти hg pull
не должен просить пароль для этого ключа.