Вместо того чтобы постоянно вбивать ssh [email protected] и потом вводить пароль, есть решение намного лучше — использование alias`ов при подключении по ssh.
Для начала надо сгенерировать ключи — это делается с помощью программы ssh-keygen, в процессе генерации она спросит название файла (по умолчанию id_rsa ) и passphrase. После генерации в текущей директории у нас появятся 2 файла: id_rsa (закрытый ключ) и id_rsa.pub (публичный ключ) . Закрытый ключ никому не показываем.
Дальше есть несколько способов:
- Публичный ключ копируем на сервер и выполняем следующую команду » cat id_rsa.pub >> ~/.ssh/authorized_keys » дальше удаляем файл id_rsa.pub, ~ папка — это домашняя папка того юзера к к-му мы хотим подключаться, к примеру, если мы подключаемся, как [email protected] — это будет папка /home/vasya/
- Либо выполняем команду ssh-copy-id, например ssh-copy-id [email protected] — нас спросят один раз пароль и всё — ключ скопирован. Можно задать туже команду с ключом i — явно указав какой публичный ключ использовать, например ssh-copy-id -i /somedir/somekey.pub [email protected] .
Теперь мы можем подключаться без пароля по ssh как [email protected] Но это еще не все — мы можем больше).
Если запишем на машину с которой подключаемся в файл ~/.ssh/config следующие строки:
Host somehost
User vasya
Hostname myhost
PasswordAuthentication no
Теперь достаточно вызвать команду ssh somehost и мы уже на сервере, и это работает во многих программах — scp, например обычное копирование с macbook на удаленный сервер scp localfile remotehost:/somedir/remotefile.
Так как я в php проектах зачастую использую symfony 1.4, опишу способ деплоя приложения на production. Файл /config/properties.ini :
[production]
host=myserver
port=22
dir=/var/www/mymegasite.ru/htdocs/
Дальше команда в консоли ./symfony project:deploy production —go и никаких паролей не надо вводить!