Назад | Перейти на главную страницу

Как перенести ключ ssh на новый сервер CentOS?

У нас есть множество скриптов, которые запускают ssh через сохраненные (без пароля) пары ключей. И клиенты, и серверы - CentOS 6.x. Я знаю, что если вы получите новый клиентский компьютер (с которого запускаются сценарии), вы можете просто скопировать ~ / .ssh / known_hosts со старого компьютера на новый.

Но если я заменяю сервер, к которому подключается эта рабочая станция, что мне копировать, чтобы сохранить пару ключей? Я пробовал скопировать содержимое / etc / ssh. После того, как я это сделал, я больше не получал отказа от подключения на клиенте «ключ изменился», но мне все равно приходилось вводить пароль.

Я погуглил и не нашел много. Что я делаю не так?

Ключи SSH хранятся в ~/.ssh/authorized_keys

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

Когда вы создаете закрытый ключ, он также создает соответствующий открытый ключ.

Идея пары закрытый / открытый ключ заключается в том, что вы храните свой закрытый ключ в безопасности (не отправляйте его по сети, Интернету и даже не позволяйте другим пользователям читать его).

Открытый ключ - это то, что вы храните на сервере, к которому хотите подключиться.

Итак, когда вы подключаетесь к серверу через ssh, вы предоставляете свой закрытый ключ и пользователя на сервере для входа в систему, например: ssh -i ~/.ssh/path/to/your/private/key user@server

На сервере вы храните свой открытый ключ (и) здесь: /home/user/.ssh/authorized_keys

Вы можете скопировать содержимое файла authorized_keys серверов на другой сервер, это просто файл с текстом в нем (каждая строка соответствует одному публичному ключу).

ssh-copy-id -i .ssh / key.pub user @ server должен помочь.

Убедитесь, что ваш key.pub существует в .ssh / authorized_keys для пользователя, от имени которого вы пытаетесь аутентифицироваться.

Вы можете сделать это, запустив это:

key=$(cat ~/.ssh/key.pub)
ssh user@host "cat ~/.ssh/authorized_keys" |grep $key

Если вы видите какие-либо ошибки использования Grep, убедитесь, что ваш путь key.pub правильный и что он существует. Если нет, вы можете создать его:

ssh-keygen -b 4096 -t rsa -f ~/.ssh/key

Если вы видите Нет такого файла или каталога для вашего файла авторизованных ключей, значит, он не существует, и вы захотите его создать.

Если его там нет, вы можете скопировать его туда, выполнив эту команду:

cat ~/.ssh/key.pub | ssh user@host "cat >> ~/.ssh/authorized_keys"

Как только вы это заработаете, рекомендуется отключить аутентификацию по паролю в / etc / ssh / sshd_conf.

Пример изменения параметра / etc / ssh / sshd_config:

RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no
ChallengeResponseAuthentication no

Для получения дополнительной информации о безопасности SSH в CentOS см. Защита OpenSSH в вики CentOS.