2 заметки с тегом

SSH

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

Копирование БД на локальную машину

Иногда бывает необходимость создания копии удаленной базы данных напрямую на локальную машину, чаще всего это требуется когда на сервере недостаточно места под бекап. В этом случае, поможет следующая конструкция:

nohup ssh user@remoteserver "mysqldump --all-backup-options-here database | gzip -3 -c" > "/local/path/to/backup/database-$(date +'%Y-%m-%d-%H:%M').sql.gz" &

nohup ......... & — выводит данный процесс за пределы сессии пользователя позволяя ему выполняться в фоне даже после завершения текущей сессии.

Удачного копирования!

SSH без пароля и приватный доступ к GIT

Для доступа к серверу по SSH без ввода пароля, необходимо, чтоб он нас узнавал. Для этого, добавим наш публичный ключ на удаленный сервер. Разместим его в домашней директории пользователя, под которым будем подключаться, в файле ~/.ssh/authorized_keys.

Если ключа нет, сгенерируем его:

# генерация пары public/private rsa ключей (создаст 2048 битный RSA ключ)
ssh-keygen -t rsa -b 2048
# или можно сгенерировать 4096 битный ключ с комментарием
ssh-keygen -t rsa -b 4096 -C "КОММЕНТАРИЙ"

После размещения ПУБЛИЧНОГО ключа на сервере в списке авторизованных, он перестанет запрашивать пароль при подключении.

# сделать это можно используя команду ssh-copy-id (если она имеется)
ssh-copy-id user@server
# или при помощи последовательности команд
cat ~/.ssh/id_rsa.pub | ssh user@server "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >>  ~/.ssh/authorized_keys"
# если возникли сложности с командами, добавьте ключ вручную в файл ~/.ssh/authorized_keys

Теперь, мы можем подключаться без пароля.

# подключаемся по SSH
ssh user@server
# работает, далее давайте настроим приватный доступ к GitHub — убедимся, что он нас не узнает
user@server:~$ ssh -T git@github.com
Permission denied (publickey).
# так и есть, не узнал

Для того, чтоб он нас узнавал, необходимо добавить наш ПРИВАТНЫЙ ключ в SSH-клиент и установить соединение с использованием личного ключа используя атрибут -A.

# добавляем ключ в SSH-клиент
ssh-add ~/.ssh/id_rsa
# подключаемся по SSH с использованием добавленного ключа (указав атрибут -A)
ssh -A user@server
#  проверяем узнает ли нас теперь GitHub
user@server:~$ ssh -T git@github.com
Hi KirillArtemenko! You've successfully authenticated, but GitHub does not provide shell access.
#  теперь можно работать со своими приватными репозиториями

На этом все. Приятного использования!