1.免密登陆

1.1 原理

ssh协议中用到了对称加密和非对称加密,如果不了解可以百度一下,原理引用一下这篇博客

在ssh中,非对称加密被用来在会话初始化阶段为通信双方进行会话密钥的协商。由于非对称加密的计算量开销比较大,因此一旦双方的会话密钥协商完成,后续的加密都将采用对称加密来进行。

1.2 rsa公钥秘钥生成

linux、mac系统都自带ssh工具,首先生成秘钥。

ssh-keygen -t rsa

系统提示你可以自定义公秘钥文件名字,因为机器上可能需要存多个秘钥来登录不同服务器,比如建立腾讯云的连接

Enter file in which to save the key (~/.ssh/id_rsa): id_rsa_txy

然后提示输入密码,是

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

这里直接如果不设置密码直接两次回车,然后私钥(id_rsa_txy)和公钥(id_rsa_txy.pub)就会在~/.ssh/生成。

因为自己配置了文件名 id_rsa_txy,所以要在~/.ssh/config文件中添加配置,如果没有该文件就touch生成一个

Host tx
HostName 148.70.xx.xx
User ubuntu
IdentityFile ~/.ssh/id_rsa_txy
ForwardAgent yes
ServerAliveInterval 60

1.3 公钥上传到服务器

首先,登录到远程主机

ssh [-l login_name] [-p 22] ip

ssh默认22端口,比如登录命令

ssh -l ubuntu 148.70.xx.xx

然后查看 ~/.ssh/authorized_keys 文件是否存在,如果不存在touch生成一个

touch ~/.ssh/authorized_keys

确保该文件600权限

chmod 600 authorized_keys

接下来复制本地id_rsa_txy.pub内的所有内容,粘贴到服务器的~/.ssh/authorized_keys文件中

1.4 连接测试

ssh tx

2.jdk环境

下载jdk,解压,mv到/usr/lib/jvm/jdk1.8

其实服务器一般只是用来运行程序,装jre就可以了,如果需要build项目,就需要jdk了。

vi ~/.bashrc,追加参数如下:
export JAVA_HOME=/usr/lib/jvm/jdk1.8(解压后的jdk文件夹路径)
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

3.pip安装

发现ubuntu server原生提供python 2.7,但是没有pip

wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
pip -V  #查看pip版本

4.设置root密码

ubuntu不提倡设置root用户,系统安装成功后,root密码是随机的,那么在这种情况下如何得到root权限呢,具体方法如下,终端中输入:

sudo passwd root

此时重新设置原登录用户的密码。(输入两次密码确认)

设置成功后在终端继续输入:

su root

则出现#号,原用户名得到root权限。此时可以进行超级用户操作。

5.supervisor安装

使用pip安装supervisor

sudo pip install supervisor

sudo echo_supervisord_conf > /etc/supervisord.conf

但生成默认配置文件/etc/权限问题,由于上一步已经设置了root密码,直接提权。

su -

修改/etc/supervisord.conf,在最后[include]中,修改files路径,supervisor会维护该路径下所有配置文件中的项目(这里需要注意,;是注释符!!!这两行默认是被注释的,要删掉;)

[include]
files = /etc/supervisor/conf.d/*.conf

好,现在在/etc/supervisor/conf.d/ 目录下创建一个 test.conf 文件,内容如下

[program:test] 		 			  ; 程序名称,在 supervisorctl 中通过这个值来对程序进行一系列的操作
autorestart=True ; 程序异常退出后自动重启
autostart=True ; 在 supervisord 启动的时候也自动启动
redirect_stderr=True ; 把 stderr 重定向到 stdout,默认 false
command=java -jar -Dserver.port=23432 test_deploy.jar ; 启动命令
user=cj ; 用哪个用户启动
directory=/Users/cj/git/test/ ; 程序的启动目录
stdout_logfile_maxbytes = 20MB ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 10 ; stdout 日志文件备份数
stdout_logfile=/Users/cj/logs/test_stdout.log ; stdout日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录

supervisor手动启动:

supervisord [-c /etc/supervisor.conf]

supervisor手动关闭:

supervisorctl stop all  #先关闭supervisor启动脚本,之后再关闭supervisord服务
kill [pid]

supervisorctl命令

status # 查看程序状态
stop program_name # 关闭 指定的程序
start program_name # 启动 指定的程序
restart program_name # 重启 指定的程序
tail -f program_name # 查看 该程序的日志
update # 重启配置文件修改过的程序

ubuntu系统快速搭建开发环境的更多相关文章

  1. 烂泥:学习ubuntu之快速搭建LNMP环境

    本文由秀依林枫提供友情赞助,首发于烂泥行天下 现在公司使用的都是ubuntu系统,这几天由于个别项目需要,需要搭建一个LNMP环境.为了快速搭建这个环境,我使用是apt-get方式进行安装.具体的操作 ...

  2. Win10 IoT C#开发 1 - Raspberry安装IoT系统及搭建开发环境

    Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架构上运行. The ...

  3. React + webpack 快速搭建开发环境

    因网上大多React + webpack快速搭建的运行不起来,便自行写了一个.在搭建开发环境的前需安装nodejs,npm. 新建一个工作目录,比如叫reactdome,在reactdome目录中运行 ...

  4. CH01基于Ubuntu系统的ZYNQ-7000开发环境的搭建

    1.1概述 实验环境: Windows 10 专业版 Vmware workstation 14.1.1 Ubuntu 16.04.3 Xilinx SDx 2017.4 实验内容: 国内Window ...

  5. ubuntu环境下快速搭建开发环境

    接触ubuntu已经半年了,虽然游戏啊qq啊在linux下配置稍微麻烦一些,但是作为开发环境,ubuntu真的是好东西,无论是c啊还是php and etc 看到官网上文档开发环境建议wamp,如果是 ...

  6. 重装Ubuntu系统并配置开发环境

    安装 Ubuntu 并配置开发环境 写一篇文章详细记录下来所有的过程,以便以后参考. 安装前的准备 备份所有代码和配置文件 备份下载的各类文件 Ubuntu 安装 下载安装 Ubuntu14.04,下 ...

  7. Sublime Text3下如何快速搭建开发环境

    安装好Sublime Text3之后,简单几步就可以搭建一个好用的开发环境. sublime的设置包括自定义设置以及插件系统. 打开菜单Preferences -> Settings,编辑自定义 ...

  8. Linux Ubuntu系统下Java开发环境搭建

    操作系统:Linux x64 / Ubuntu 14.04 Java JDK版本:jdk-8u65-linux-x64.tar.gz 声明:转载请注明出处及本文链接 1. 前往ORACLE官网下载最新 ...

  9. ubuntu系统中java开发环境的搭建

    Java环境可选择 Oracle 的 JDK,或是 OpenJDK,按http://wiki.apache.org/hadoop/HadoopJavaVersions中说的,新版本在 OpenJDK ...

随机推荐

  1. AE多用户同时编辑同一个版本数据的解决方法

    项目中做了入库的功能,测试一切正常,但是实际使用多个用户同时编辑default版本的时候,问题就来了,StopEditing 错误信息如下 FDO_E_VERSION_REDEFINED -21472 ...

  2. SENNA

    SENNA is a software distributed under a non-commercial license, which outputs a host of Natural Lang ...

  3. Android 笔记之 R 文件

    Android笔记之R文件 h2{ color: #4abcde; } a{ color: blue; text-decoration: none; } a:hover{ color: red; te ...

  4. MapReduce框架结构及代码示例

    一个完整的 mapreduce 程序在分布式运行时有三类实例进程: 1.MRAppMaster:负责整个程序的过程调度及状态协调 2.MapTask:负责 map 阶段的整个数据处理流程 3.Redu ...

  5. 2017软件测试_HW1_最近遇到的编程问题

     最近遇到的错误:我对着网页源代码编写了一段爬虫语句,运行没有提示有错误,而且 可以抓取到全部的数据,但是不能按照要求将这些数据分到制定的位置. 发现问题原因:我把抓取到的字段对着网页源码看了一下,发 ...

  6. Jerry的Fiori原创文章合集

    我曾经于2014年10月到2016年5月工作于SAP CRM Fiori应用的开发团队, 我所在的团队负责下列这8个Fiori应用的维护和持续开发: My Opportunities My Tasks ...

  7. 中间件事务码R3AC1里Block Size的含义

    在中间件事务码R3AC1可以为一个中间件的适配器对象维护Block size的大小. 以上图的尺寸为50为例,假设在ERP系统里有110个设备(equipment)需要下载,那么CRM中间件会自动生成 ...

  8. arcgis for javascript ArcGISDynamicMapServiceLayer 过滤图层点

    记录下过滤 ArcGISDynamicMapServiceLayer 图层服务的方法 function filterArcGISDynamicMapServiceLayer(){ map.graphi ...

  9. solidity开发之windows下配置remix本地环境遇到的问题及解决

    本人按照这个教程配置remix本地环境.[https://cloud.tencent.com/developer/article/1374376] win+R打开管理员终端,在欲配置为本地目录的路径执 ...

  10. PHP 重新格式化var_dump/print_r打印的数组

    // 在使用var_dump/print_r时 打印出来的数组 都是一行显示的, 看起来不方便 function dump($vars, $label = '', $return = false) { ...