Мне нужно запускать ssh-add <key>
каждый раз, когда мне нужно ssh в веб-сервер. Есть ли способ постоянного добавления идентификатора, поэтому мне не нужно добавлять идентификаторы при каждом входе в систему?
РЕДАКТИРОВАТЬ: ключ представляет собой файл pem, который я скачал из облачной службы.
Если ваш ключ не содержит пароля и назван в качестве одного из файлов, которые ssh будет пытаться найти при идентификации (~/.ssh/id_dsa
или ~/.ssh/id_rsa
), вам не нужно добавлять его в свой агент.
НО. Если есть малейшая возможность кражи этих файлов, вы бы просто позволили любому получить доступ к серверам, на которых вы используете эту личность. Короче говоря, забили.
ИМХО, закрытые ключи без пароля - плохая практика, и их следует использовать только в средах, где ~/.ssh/authorized_keys
очень ограничено.
Создайте свой ключ, как обычно: ssh-keygen
, затем поместите этот ключ на удаленный сервер с помощью ssh-copy-id
, который синхронизирует его с принятыми ключами удаленного сервера.
ssh-keygen
ssh-copy-id user@host
Он запросит ваш пароль, затем выполнит все шаги, необходимые для связывания вашего ключа .pub
с удаленным сервером SSH.
По умолчанию он скопирует все ваши ключи .pub на удаленный сервер. Если вы только что создали свой ключ с помощью ssh-keygen
, то это не проблема (потому что у вас есть только один!). Однако, если у вас есть несколько ключей, вы можете скопировать только определенный ключ с флагом -i
.
ssh-copy-id -i ~.ssh/key_name.pub user@host
Замена key_name.pub
на имя ключа.
Вы можете сгенерировать ключ ssh с помощью команды:
ssh-keygen
Затем вы можете скопировать ключ на сервер с помощью:
ssh serveruser@servername "echo `cat ~/.ssh/id_dsa.pub` >> ~/.ssh/authorized_keys"
Теперь вы можете автоматически войти в свой веб-сервер
Напишите короткий скрипт оболочки, который запустит ssh-add, а затем подключится, например, следующим образом:
ssh-add ~/.ssh/your-key
ssh user@remotehost
Затем вы можете подключиться к вашему хосту с помощью одной команды.
вставьте это в свой ~/.bashrc
eval $(ssh-agent)
ssh-add ~/.ssh/where_ever_privake_key_is
ssh serveruser@servername "cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys"
Вы говорите об Amazon Cloud? В вашем ~ / .bashrc создайте переменные окружения:
# Amazon
export EC2_PRIVATE_KEY=$HOME/Keys/pk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.pem
export EC2_CERT=$HOME/Keys/cert-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.pem
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk/
Для AWS загрузите pem ключ и работайте:
ssh-add /path/to/pemfile.pem
Это работало на меня, человечность 18.04. Источник, Ничто иное не было необходимо.
NB: Однако важно установить полномочия на 400 прежде, чем сделать это.
chmod 400 /path/to/pemfile.pem
Если не Вы получите ошибку:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @
ПРЕДУПРЕЖДЕНИЕ: НЕЗАЩИЩЕННЫЙ ФАЙЛ СЕКРЕТНЫХ КЛЮЧЕЙ! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Полномочия 0664 для '/home/toing_toing/blablabla.pem' слишком открыты. Требуется, что Ваши файлы секретных ключей не доступны другими. Этот закрытый ключ будет проигнорирован.