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. Hbase到Solr同步常用操作

    Hbase到Solr同步常用操作 1. 整体流程 2. 常用操作 Hbase常用操作 Solr常用操作 hbase-index常用操作 3. 其他资料 Lily HBase Indexer使用整理 h ...

  2. Cloud

    Cloud = Data + Routing + Computing + Storage

  3. IntelliJ、ReSharper 6折 加入慧都“惊喜惠”

    慧都2013岁末回馈惊喜不断!著名的软件开发公司JetBrains旗下所有产品加入"惊喜惠"活动环节, JAVA IDE——IntelliJ IDEA,.NET效率工具集——ReS ...

  4. 基本算法思想Java实现的详细代码

    基本算法思想Java实现的详细代码 算法是一个程序的灵魂,一个好的算法往往可以化繁为简,高效的求解问题.在程序设计中算法是独立于语言的,无论使用哪一种语言都可以使用这些算法,本文笔者将以Java语言为 ...

  5. Qt删除文件夹

    写的软件需要进行文件夹的复制,开始不怎么懂就找了个拷贝文件夹的代码测试了一下,运行程序选择了源目录和目标目录相同进行拷贝,结果悲剧了.因为是递归拷贝,导致文件夹被嵌套N层,软件死机,强制结束后,产生的 ...

  6. Python对数组的基本操作

    # coding=utf-8创建并打印数组'''arr = ["aex", "bfe", "mpilgrim", "zddd&qu ...

  7. 会话cookie中缺少HttpOnly属性 解决

    会话cookie中缺少HttpOnly属性 解决   只需要写一个过滤器即可 1 package com.neusoft.streamone.framework.security.filter; 2 ...

  8. 爬虫入门之jsonPath PhantomJS与 selenium详解(六)

    1 jsonPath数据格式 pip安装: pip install jsonpath 用来解析json格式的字符串,类似于xpath (1) json对象的转换 json.loads() json.d ...

  9. Selenium2学习(十四)-- 加载Firefox配置

    前言有小伙伴在用脚本启动浏览器时候发现原来下载的插件不见了,无法用firebug在打开的页面上继续定位页面元素,调试起来不方便 . 加载浏览器配置,需要用FirefoxProfile(profile_ ...

  10. aws查看官方centos镜像imageid

    aws ec2 describe-images --owners aws-marketplace --filters Name=product-code,Values=aw0evgkw8e5c1q41 ...