Как скопировать ваш открытый ключ SSH на сервер с компьютера без ssh-copy-id

cat ~/.ssh/id_rsa.pub | ssh "(cat > tmp.pubkey ; mkdir -p .ssh ; touch .ssh/authorized_keys ; sed -i.bak -e '/$(awk '{print $NF}' ~/.ssh/id_rsa.pub)/d' .ssh/authorized_keys; cat tmp.pubkey >> .ssh/authorized_keys; rm tmp.pubkey)"


Эта команда выполняет копирование открытого ключа SSH на удаленный сервер без использования команды ssh-copy-id.

1. cat ~/.ssh/id_rsa.pub — выводит содержимое файла с открытым ключом id_rsa.pub
2. | — перенаправляет вывод предыдущей команды к следующей
3. ssh — устанавливает ssh-соединение с удаленным сервером
4. "(cat > tmp.pubkey ; mkdir -p .ssh ; touch .ssh/authorized_keys ; sed -i.bak -e '/$(awk '{print $NF}' ~/.ssh/id_rsa.pub)/d' .ssh/authorized_keys; cat tmp.pubkey >> .ssh/authorized_keys; rm tmp.pubkey)" — выполняет следующие действия на удаленном сервере:
cat > tmp.pubkey — создает и открывает временный файл tmp.pubkey, ожидая ввода данных
mkdir -p .ssh — создает папку .ssh, если она не существует
touch .ssh/authorized_keys — создает файл authorized_keys, если он не существует
sed -i.bak -e '/$(awk '{print $NF}' ~/.ssh/id_rsa.pub)/d' .ssh/authorized_keys — удаляет из файла authorized_keys строки, содержащие последний столбец из файла с открытым ключом
cat tmp.pubkey >> .ssh/authorized_keys — добавляет содержимое временного файла в authorized_keys
rm tmp.pubkey — удаляет временный файл tmp.pubkey

Эта команда полезна для быстрого копирования открытого ключа SSH на удаленный сервер без необходимости вводить его вручную. Альтернативой является использование команды ssh-copy-id, которая выполняет аналогичную задачу более простым способом.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *