Archive

Archive for the ‘系统管理’ Category

JSch连接SSH问题Exception:Algorithm negotiation fail

August 16th, 2016 No comments

使用Jenkins配置完远程SSH服务器,发生无法连接问题,查看Log后找到

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[SSH] Exception:Algorithm negotiation fail
    com.jcraft.jsch.JSchException: Algorithm negotiation fail
    at com.jcraft.jsch.Session.receive_kexinit(Session.java:520)
    at com.jcraft.jsch.Session.connect(Session.java:286)
    at com.jcraft.jsch.Session.connect(Session.java:150)
    at org.jvnet.hudson.plugins.SSHSite.createSession(SSHSite.java:141)
    at org.jvnet.hudson.plugins.SSHSite.executeCommand(SSHSite.java:151)
    at org.jvnet.hudson.plugins.SSHBuildWrapper.executePreBuildScript(SSHBuildWrapper.java:75)
    at org.jvnet.hudson.plugins.SSHBuildWrapper.setUp(SSHBuildWrapper.java:59)
    at hudson.model.Build$BuildExecution.doRun(Build.java:154)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:533)
    at hudson.model.Run.execute(Run.java:1754)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:89)
    at hudson.model.Executor.run(Executor.java:240)
Finished: FAILURE

Read more…

Categories: 系统管理 Tags: , ,

Nginx配置HTTPS支持CHACHA20_POLY1305

August 16th, 2016 No comments

Nginx打开CHACHA20_POLY1305支持需要替换Nginx的OpenSSL库为BoringSSLLibreSSL

具体实现替换方法请参考

Nginx替换OpenSSLLibreSSL 请参考
https://www.lidaren.com/archives/1702

Nginx替换OpenSSL为BoringSSL 请参考
https://www.lidaren.com/archives/1705

修改nginx.conf让nginx支持CHACHA20加密算法即可
这里增加”EECDH+CHACHA20:EECDH+CHACHA20-draft:”

1
2
3
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
#BoringSSL 默认关闭SSLv3
ssl_protocols TLSv1 TLSv1.1TLSv1.2;

Read more…

Nginx替换OpenSSL为BoringSSL

August 16th, 2016 No comments

先科普
BoringSSL 是Google创建的 OpenSSL 分支,但使用BoringSSL的代码不能保证API或ABI的稳定性,所以谷歌会继续向 OpenSSL递交bug修正,继续资助Core Infrastructure Initiative和OpenBSD基金会。
谷歌使用了超过70个OpenSSL补丁,部分被接受合并到了OpenSSL主库,但大部分没有。随着AndroidChrome和其它项目开始需要这些补丁的子集,事情日益变得复杂,要保证所有补丁在不同代码库正常工作需要太多精力。所以他们决定创建OpenSSL分支。

简单总结一下BoringSSL的优缺点
优点:兼容OpenSSL,修正了许多OpenSSL的BUG,OpenSSL改不了的BUG也被BoringSSL改了。
缺点:BoringSSL只为TLS和HTTPS而生,部分OpenSSL开关默认是关闭的,其他用途的话还是建议OpenSSL。

Nginx替换OpenSSL为BoringSSL与替换为LibreSSL方法基本类似,手动编译会比较麻烦
编译之前需要进行代码的补丁修正,这里提供一个已经实现好的编译脚本供参考

github @ajhaydock
https://github.com/ajhaydock/BoringNginx

Read more…

Categories: 系统管理 Tags: , , , ,

Nginx替换OpenSSL为LibreSSL

August 16th, 2016 No comments

先科普
LibreSSLOpenSSL加密软件库的一个分支,为一个安全套接层(SSL)和传输层安全(TLS)协议的开源实现。在OpenSSL爆出心脏出血安全漏洞之后,一些OpenBSD开发者于2014年4月创立了LibreSSL,目标是重构OpenSSL的代码,以提供一个更安全的替代品。LibreSSL复刻自OpenSSL库的1.0.1g分支,它将遵循其他OpenBSD项目所使用的安全指导原则。

简单总结一下LibreSSL的优缺点
优点:兼容OpenSSL,代码简单,分支清晰,便于安装、使用和维护
缺点:不支持旧安全算法,部分加密算法效率不高。

安装编译环境

1
2
#安装编译环境
yum install -y gcc gcc-c++ pcre-devel openssl openssl-devel

创建工作目录,统一使用绝对路径

1
2
3
#创建工作目录,统一使用绝对路径
mkdir /work
cd /work

Read more…

Categories: 系统管理 Tags: , , ,

Mesos + Marathon + Deimos + Docker 容器集群组建

July 25th, 2016 No comments

今天用单机试验配置了Mesos + Marathon + Deimos + Docker容器集群环境,目的是为以后的搭建轻量级别PaaS平台

先科普
Mesos,是Apache下的开源分布式资源管理框架,它被称为是分布式系统的内核。Mesos最初是由加州大学伯克利分校的AMPLab开发的,后在Twitter得到广泛使用。
Marathon,是一个mesos框架,能够支持运行长服务,比如web应用等。是集群的分布式Init.d,能够原样运行任何Linux二进制发布版本。
Deimos, 是一个为Mesos准备的Docker插件。使用Docker接口可以让Mesos批量管理Docker容器
Docker,是一个重新定义了程序开发测试、交付和部署过程的开放平台。Docker也是容器技术的一种,它运行于Linux宿主机之上,每个运行的容器都是相互隔离的,也被称为轻量级虚拟技术或容器型虚拟技术。
Read more…

Ubuntu的更改apt-get代理设置

July 15th, 2016 No comments

网站服务器切换回国内机房之后就是各种不适应,早上安装Docker,一直提示

1
2
3
4
5
Get:1 https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 docker-engine amd64 1.11.2-0~xenial [14.5 MB]
Err:1 https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 docker-engine amd64 1.11.2-0~xenial
  Operation too slow. Less than 10 bytes/sec transferred the last 120 seconds
E: Failed to fetch https://apt.dockerproject.org/repo/pool/main/d/docker-engine/docker-engine_1.11.2-0~xenial_amd64.deb  Operation too slow. Less than 10 bytes/sec transferred the last 120 seconds
E: Unable to fetch some archives, maybe run a-get update or try with --fix-missing?

调查后发现是因为docker把相关文件放在了Amazon S3上,国内只能时好时不好。原因大家都懂

直接修改“/etc/apt/apt.conf”文件,配合Shadowsocks使用。

1
2
3
Acquire::http::proxy "http://127.0.0.1:1080/";
Acquire::ftp::proxy "ftp://127.0.0.1:1080/";
Acquire::https::proxy "https://127.0.0.1:1080/";

另外,apt-get也有一个“-o”选项,直接跟apt-get的设置变量,就不用指定配置文件了,比如

1
sudo apt-get -o Acquire::http::proxy="http://127.0.0.1:1080/”

其他安装方法
http://get.daocloud.io/#install-docker

参考
http://blog.csdn.net/sww_simpcity/article/details/8776098

Categories: 系统管理 Tags: ,

[Linux]使用SSH-KEY方式登录SSH

January 18th, 2016 No comments

管理Linux主机多了之后,管理大量的登录密码是一件很麻烦的事情,使用SSH-KEY方式登录服务器可以很好的解决问题。
以下是使用SSH-KEY方式实现客户端免密码登录SSH的方法。一套SSH-KEY可以等遍所有的服务器。

1.使用ssh-keygen在本地创建登录远程SSH服务器使用的公钥和私钥

1
2
3
ssh-keygen -t [rsa|dsa] -C "comments"
# -t 可选择RSA 和 DSA 两种密钥
# -C 可选注释

一路enter之后,会在~/.ssh目录下创建两个文件
id_dsa #私钥,妥善保存好。
id_dsa.pub #公钥

2.将公钥复制到服务器上对应用户的 ~/.ssh/目录下。

3.在服务器用户的 ~/.ssh/目录下执行

1
2
3
cat id_dsa.pub >>authorized_keys
#  首次使用的时候
chmod 600 authorized_keys

需要注意的是出于安全考虑,authorized_keys必须是600权限
Read more…