apt-get
, а также различные сопутствующие инструменты, используйте значительно меньше памяти, чем соответствующие вызовы командной строки aptitude
, и немного более быстры. Я был в блаженном неведении об этом, пока я не пытался обновить установку debian на высохшем старом ThinkPad Pentium с 32 МБ поршня. Потребовались бы час или две из перегрузки подкачки для выполнения apt-get
, который завершился успешно; aptitude
перестал бы работать после того, как я думаю более длительный промежуток времени.
Это различие более или менее не важно на чем-либо напоминающем современную настольную систему.
Необходимо использовать ssh агент. Короткий ответ: попробовать
$ ssh-add
перед продвижением. Предоставьте свой пароль при выяснении.
Если Вы уже не выполните ssh агент, то Вы получите следующее сообщение:
Could not open a connection to your authentication agent.
В той ситуации можно запустить один и настроить среду таким образом
eval $(ssh-agent)
Затем повторитесь ssh-add
команда.
Это стоит смотреть на ssh страницу справочника агента.
Способ решить это с ssh-agent
и ssh-add
:
$ exec ssh-agent bash
$ ssh-add
Enter passphrase for ~/.ssh/id_rsa:
После этого пароль сохраняется для текущей сессии. и не будет спрошен снова.
Я использую Связку ключей для управления ssh ключи. Это также доступно в Debian и поэтому по-видимому, Ubuntu с
apt-get install keychain
Вот страница пакета связки ключей Debian. Как Вы видите, проект не очень активен, но работает на меня. Я также прокомментировал немного об этом в другом ответе здесь
Для удобства оптимальный метод является комбинацией ответов jmtd и Faheem.
Используя ssh-agent
один означает что новый экземпляр ssh-agent
потребности, которые будут созданы для каждого нового терминала, Вы открываетесь. keychain
при инициализации попросит пароль для закрытого ключа (ключей) и сохранит его. Тем путем Ваш закрытый ключ защищен паролем, но Вы не должны будете вводить свой пароль много раз.
Дуга Wiki рекомендует инициализировать связку ключей от /etc/profile.d/
или Ваш профиль оболочки, такой как .bash_profile
или .bashrc
. Это имеет недостаток, в котором это инициализирует Вашу связку ключей, как только Вы открываете терминал.
Более гибкий подход должен объединиться keychain
с определенным tmux
сессия. Так, в .bash_profile
:
tsess=$(tmux ls 2>&1)
if [[ "${tsess%%:*}" = "secured" ]] &&
[[ -f $HOME/.keychain/$HOSTNAME-sh ]]; then
# start keychain
/usr/bin/keychain -Q -q --nogui ~/.ssh/id_rsa
. $HOME/.keychain/$HOSTNAME-sh
fi
... и затем это - просто случай запуска защищенного tmux
сессия как и при необходимости (запущенный от keybind):
#!/bin/bash
PID=$(pgrep tmux)
new="tmux -f $HOME/.tmux/conf new -s secured"
old="tmux attach -t secured -d"
if [[ -z "$SSH_AUTH_SOCK" ]]; then
eval `ssh-agent`
trap "kill $SSH_AGENT_PID" 0
fi
if [[ -z "$PID" ]]; then
urxvtc -title "SSH" -e sh -c "${new}"
else
urxvtc -title "SSH" -e sh -c "${old}"
fi
ssh-add
Теперь, Ваша связка ключей будет только инициализирована однажды при запуске этого конкретного tmux
сессия. Пока та сессия сохраняется, Вы сможете получить доступ к ним ssh
ключи и нажатие в Ваши удаленные репозитории.
.profile
- тем путем Вы получите подсказку для ключей, как только Вы входите в систему.
– jasonwryan
20.02.2012, 22:29
Puedes usarsshpass
:
$ sudo apt-get install sshpass
$ sshpass -p 'password' ssh username@server
Solo necesita agregar sshpass -p yourpassphrase
antes de agregar su comando habitual ssh
.
Создайте (или отредактируйте, если он существует )следующий ~файл /.ssh/config:
Host *
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/id_rsa
eval
Вы могли просто ввестиssh-agent
? – James McMahon 18.09.2017, 20:07eval
делает excuting. – tshepang 03.02.2018, 11:21