为服务器安全起见,关闭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