Notes
Создание пользователя и SSH ключей
Команды для создания пользователя в linux:
Посмотреть список групп в системе:
vi /etc/group
Посмотреть список груп конкретного пользователя:
id -Gn vasyapupkin
Создать пользователя:
sudo useradd vasya
Создать пользователя + скелетные директории:
sudo adduser vasya
Или создать пользователя сразу добавив в дополнительную группу newGroup:
sudo useradd -G newGroup vasyapupkin
Добавить пользователя vasyapupkin в группу newGroup:
sudo usermod -a -G newGroup vasyapupkin
добавить пользователю права sudo:
sudo usermod -a -G sudo vasya
//relogin after it
Или
sudo visudo
vasya ALL=(ALL:ALL) NOPASSWD:ALL
Удалить пользователя и его домашнюю директорию с файлами:
userdel -r vasya
Команды для работы с SSH ключами в linux:
Создать SSH пару ключей закрытый и открытый:
ssh-keygen -C "this key needs for username@remote_host"
или
ssh-keygen -o -a 100 -t ed25519 -f ~/.ssh/id_rsa_custom -C "your email"
где:
- -t Specifies the type of key to create (e.g., rsa)
- -b bits Specifies the number of bits in the key to create. The default length is 3072 bits (RSA) or 256 bits (ECDSA)
- -C comment Provides custom key comment (which will be appended at the end of the public key)
- -o Use the new OpenSSH format
- -a When saving a private key, this option specifies the number of KDF (key derivation function, currently bcrypt_pbkdf(3)) rounds used
- -f filename Specifies the filename of the key file
Скопировать ssh ключи от одного пользователя другому:
sudo cp -r /home/USER1/.ssh /home/USER2/.ssh
sudo chown -R USER2:USER2 /home/USER2/.ssh
sudo chmod -R 700 /home/ddudin/.ssh
Сменить пароль на ключ можно с помощью команды
ssh-keygen -f ~/.ssh/id_rsa_my_custom -p
Копирование открытого ключа на сервер:
ssh-copy-id -i id_rsa.pub username@remote_host
Когда ранее созданный ключ id_rsa.pub
будет найден, тогда будет предложено ввести пароль учетной записи удаленного пользователя. Утилита подключится к учетной записи на удаленном хосте, используя указанный пароль. Затем содержимое ключа ~/.ssh/id_rsa.pub
будет скопировано в основной каталог ~/.ssh
удаленной учетной записи в файл с именем authorized_keys
.
После этого можно проверить как работает подключение с этим ключом:
ssh -v -i ~/.ssh/id_rsa username@remote_host
Где:
- -i identity_file
- -v Prints debugging messages for ssh connection. The verbose mode is useful when troubleshooting configuration issues.
МОМЕНТЫ:
Все права на /home/USER/.ssh должны быть 700 и только пользователя владельца
Команды для этого:
sudo chown -R USER2:USER2 /home/USER2/.ssh
sudo chmod -R 700 /home/USER2/
Выдержка из офф. документации:
3. Copy id_dsa.pub to the server's .ssh directory
* -> scp $HOME/.ssh/id_dsa.pub user@server:/home/user/.ssh
4. Change to /root/.ssh and create file authorized_keys containing id_dsa content
* -> cd /home/user/.ssh
* -> cat id_dsa.pub >> authorized_keys
Вырианты команд для работы с SSH в Windows:
scp $HOME/.ssh/id_rsa.pub user@11.1.2.3:/home/user/.ssh
ssh-copy-id user@11.1.2.3
"C:\Program Files\PuTTY\pscp.exe" C:/Users/user/.ssh/id_rsa.pub user@11.1.2.3:/home/user/.ssh
"C:\Program Files\PuTTY\pscp.exe" C:/Users/user/.ssh/id_rsa user@11.1.2.3:/home/user/.ssh
type public_id | "C:\Program Files\PuTTY\plink.exe" user@11.1.2.3 "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys"
# Частые проблемы
если ssh спрашивает пароль когда ключ SSH вы уже подставили, тогда значит первым делом проверяйте как идет подключение:
ssh -vT git@YOUR_HOST_OR_GIT_REPO
После этого вы поймете что ключ скорее всего не тот вы подставили и тогда вы можете добавить ключ в настройки гит-репы,
а в гит-репу нужен собственный формат ключа который дает puttygen
Источники:
- Настройка ключей SSH в Ubuntu 20.04 - https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys-on-ubuntu-20-04-ru
Leave a reply