爲服務器安全起見,關閉root帳戶的遠程訪問。javascript
打開配置文件:java
vi /etc/ssh/sshd_config
找到以下設置,並修改yes爲no:git
PermitRootLogin no
保存文件後,重啓sshd服務:github
service sshd restart
npm install pm2 -g
若是可獲得版本號,則說明安裝成功:npm
pm2 -v
1.一、本地環境配置json
#用戶家目錄 cd .ssh
#生成私鑰和公鑰 ssh-keygen -t rsa -b 4096 -C "bradball@qq.com"
#開啓SSH代理 eval "$(ssh-agent -s)"
#將id_rsa加入代理中 ssh-add ~/.ssh/id_rsa
1.二、server環境搭建vim
前面步驟和本地環境相同。而後:數組
sudo vim authorized_keys
將本地id_rsa.pub寫入 authorized_keys。安全
#受權 sudo chmod 600 authorized_keys
#重啓ssh sudo service ssh restart
{ "app": [{ "name" :"Ice", "script": "service.js", "env" :{ "COMMON_VARIABLE": "true" }, "env_production": { "NODE_ENV": "production" } }], "deploy": { "production": { "user": "brad", "host": ["xxx.78.174.xxx"], "ref": "origin/master", "port": "3006", "repo": "git@git.coding.net:dt_xz/ice.git", "path": "/home/brad/ice/production", "ssh_options": "StrictHostKeyChecking=no", "pre-deploy-local": "echo 'Deploy Done'", "env": { "NODE_ENV": "production" } } } }
production : { user : "登陸遠程服務器的用戶名,此處填寫咱們建立的yishi", host : "遠程服務器的IP或hostname,此處能夠是數組同步部署多個服務器,不過鑑於咱們只有一個服務器,所以咱們填寫123.57.205.23", ref : "遠端名稱及分支名,此處填寫origin/master", repo : "git倉庫地址,此處填寫git@github.com:e10101/pm2app.git", path : "遠程服務器部署目錄,須要填寫user具有寫入權限的目錄,此處填寫/home/yishi/www/production", "post-deploy" : "部署後須要執行的命令,此處填寫npm install && pm2 startOrRestart ecosystem.json --env production" },
pm2 deploy ecosystem.json production setup
提示錯誤:bash
Host key verification failed. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. failed to clone Deploy failed
此時主要是在遠程服務器中,並未將http://github.com(或碼雲)加入known_hosts,在服務器端經過以下命令設置:
ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts