Комплексная заметка по работе с SSH в Windows 11 через Windows Terminal.
1. Управление профилями Windows Terminal - settings.json
Через файл настроек settings.json гораздо удобнее производитель управление профилями, в частности ssh подключениями.
1.1 Чтобы быстро найти и открыть файл settings.json нужно запустить Windows Terminal открыть параметры или нажать комбинацию клавиш Ctrl + / и нажать на кнопку Открытие файла JSON.
(Если файл настроек Windows Terminal — settings.json файл не открылся, нужно назначить программу по умолчанию для открытия json файлов.)
Открыв settings.json можно найти список профилей в массиве list записи с ключом profiles:
Чтобы добавить новый профиль, в массив list необходимо добавить новую запись с содержанием:
{
"name": "Test VPS",
"tabTitle": "Test VPS",
"commandline": "ssh -i ~/.ssh/superkey vpsuser@124.124.124.124"
}
Я использую параметры -i ~/.ssh/superkey в commandline для явного указания ssh ключа.
В итоге:
Ссылка на официальную документацию — General profile settings in Windows Terminal
2. Копирование ssh ключа на удалённый сервер
cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'cat >> .ssh/authorized_keys && echo "Key copied"'
А лучше с помощью данной команды:
Цитата Авторизация по ключу SSH:
Если такой способ по какой-либо причине для вас не работает, вы можете скопировать ключ по ssh вручную. Мы создадим каталог ~/.ssh, а затем поместим наш ключ в файл authorized_keys с помощью символа >>, это позволит не перезаписывать существующие ключи:
cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Конечно можно заморочиться с добавлением эмуляции команды ssh-copy-id, но лично мне кажется что это лишнее — ssh-copy-id для Windows.