SSH Copy ID: удобный доступ к удаленным серверам
SSH Copy ID (Идентификация с использованием протокола SSH)
SSH Copy ID - это удобная команда, которая позволяет скопировать публичный ключ пользователя на удаленный сервер. Это позволяет вам войти на удаленный сервер, используя ваш закрытый ключ, без необходимости каждый раз вводить пароль.
Команда ssh-copy-id встроена в большинство дистрибутивов Linux и доступна на macOS. Вот как она работает.
Прежде чем использовать команду ssh-copy-id, у вас уже должен быть создан парный ключ SSH. Это включает в себя закрытый ключ (обычно располагается в ~/.ssh/id_rsa) и публичный ключ (обычно располагается в ~/.ssh/id_rsa.pub).
- Сначала вам необходимо указать имя пользователя и адрес удаленного сервера, на который вы хотите скопировать публичный ключ SSH. Это может выглядеть следующим образом:
ssh-copy-id user@remote_host
Где user - ваше имя пользователя на удаленном сервере, а remote_host - IP-адрес или доменное имя удаленного сервера.
- После выполнения команды ssh-copy-id вам будет предложено подключиться к удаленному серверу с помощью пароля. После успешного входа в систему ваш публичный ключ будет скопирован в файл
~/.ssh/authorized_keysна удаленном сервере.
Вот пример вывода команды ssh-copy-id:
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
user@remote_host's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'user@remote_host'"
and check to make sure that only the key(s) you wanted were added.
После успешного выполнения вы можете теперь подключиться к удаленному серверу без ввода пароля:
ssh user@remote_host
Пример использования команды ssh-copy-id в скрипте на языке bash:
#!/bin/bash
hosts=(
"user1@remote_host1"
"user2@remote_host2"
"user3@remote_host3"
)
for host in "${hosts[@]}"
do
echo "Copying SSH public key to $host..."
ssh-copy-id "$host"
done
В этом примере мы создаем массив hosts, содержащий имена пользователей и адреса удаленных серверов. Затем мы обходим все элементы массива и выполняем команду ssh-copy-id для каждого удаленного сервера.
Таким образом, мы можем автоматизировать процесс копирования публичного ключа SSH на несколько удаленных серверов одновременно.
В заключение, команда ssh-copy-id - полезная утилита для упрощения процесса идентификации с использованием протокола SSH. Она позволяет безопасно копировать публичный ключ на удаленный сервер и избавляет от необходимости каждый раз вводить пароль при подключении.