Вам следует вернуться к версии Python, поставляемой с CentOS 7.3. Слишком много системных скриптов зависит от версии Python, поставляемой с ОС, чтобы вы могли безопасно перейти на Python 2.6.6
. Вы можете загрузить сжатый tar-архив Python 2.6.6 с python.com
и установите его где угодно, если вам действительно нужно использовать эту версию для конкретного приложения.
Как вы упомянули, команде ssh
нужен ключ с именем id_rsa
.
Когда вы делаете:
$ ssh-add sandbox
вы добавляете к своему агенту ключ с именем sandbox
.
Итак, есть несоответствие.
Решение в командной строке SSH — использовать параметр идентификации файла:
ssh -i ~/.ssh/other_keys/sandbox...
Note: I use a subfolder for other keys, because there is a harsh limit, which makes sense, but it will bite you if you access many servers, each with their own key; see https://askubuntu.com/questions/419546/ssh-never-ask-for-a-password for additional details.
Чтобы не использовать параметр -i
постоянно, вы можете вместо этого добавить эту информацию в свой файл ~/.ssh/config
:
Host example.com
Hostname example.com
User YourUserName
PasswordAuthentication no
HostbasedAuthentication no
IdentitiesOnly yes
IdentityFile /home/<your-user-name>/.ssh/other_keys/sandbox
Теперь ssh
найдет эту IdentifyFile
опцию самостоятельно. Поиск основан на Host
. На самом деле вы можете использовать любое имя в этой строке, например:
Host remote-sandbox
...
дает вам возможность использовать
$ ssh remote-sandbox
в вашей командной строке, без необходимости определять remote-sandbox
в вашем /etc/hosts
.
Вы вообще не должны использовать команду ssh-add
. При первом запуске команды ssh
она запросит у вас пароль и, если у вас есть доступный агент, автоматически сохранит его там. Использование ssh-add
может быть полезно, если команда ssh
будет выполняться без вашего участия на вашем компьютере (или, если вы используете такую систему, как Docker, для предварительной загрузки ключа, поскольку docker build...
убивает оболочку ввода. ).