2019年5月

查看原版本

java -version

显示如下

java version "1.7.0_101"
OpenJDK Runtime Environment (IcedTea 2.6.6) (7u101-2.6.6-0ubuntu0.14.04.1)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)

安装 opensdk 8

add-apt-repository ppa:openjdk-r/ppa
apt-get update
apt-get install openjdk-8-jdk

列出已经安装的Java版本

update-java-alternatives -l

显示如下:

java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64

手动切换版本

update-alternatives --config java

选择java-8-openjdk-amd64即可

    There are 2 choices for the alternative java (providing /usr/bin/java).

      Selection    Path                                            Priority   Status
    ------------------------------------------------------------
      0            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      auto mode
      1            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      manual mode
    * 2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1069      manual mode

    Press enter to keep the current choice[*], or type selection number: 2

在证书控制台下载Nginx版本证书。下载到本地的压缩文件包解压后包含:

  • .crt文件:是证书文件,crt是pem文件的扩展名。
  • .key文件:证书的私钥文件(申请证书时如果没有选择自动创建CSR,则没有该文件)。
    友情提示: .pem扩展名的证书文件采用Base64-encoded的PEM格式文本文件,可根据需要修改扩展名。

以Nginx标准配置为例,假如证书文件名是a.pem,私钥文件是a.key。

1.在Nginx的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为a.key;

2.打开 Nginx 安装目录下 conf 目录中的 nginx.conf 文件,找到:

# HTTPS server
# #server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
# ssl_prefer_server_ciphers on;
# location / {
#
#
#}
#}

3.将其修改为 (以下属性中ssl开头的属性与证书配置有直接关系,其它属性请结合自己的实际情况复制或调整) :

server {
 listen 443;
 server_name localhost;
 ssl on;
 root html;
 index index.html index.htm;
 ssl_certificate   cert/a.pem;
 ssl_certificate_key  cert/a.key;
 ssl_session_timeout 5m;
 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 ssl_prefer_server_ciphers on;
 location / {
     root html;
     index index.html index.htm;
 }
}

保存退出。

4.重启 Nginx。

在conf配置上添加一个80的server,将其转发即可

server {
    listen 80;
    server_name www.域名.com;
    rewrite ^(.*)$ https://${server_name}$1 permanent; 
}

可以直接在~/.bash_profile, ~/.zshrc, ~/.profile, or ~/.bashrc中添加一个函数进去。

# 开启代理
proxy () {
    export https_proxy=http://127.0.0.1:10086
    export http_proxy=http://127.0.0.1:10001
    export all_proxy=socks5://127.0.0.1:10010
    echo "Proxy on"
}

# 关闭代理
unproxy () {
    export https_proxy
    export http_proxy
    export all_proxy
    echo "Proxy off"
}

之后执行source ~/.zshrc(对应自己的startup files文件)。

需要开启代理的时候就执行proxy,关闭就执行unproxy

生成SSH密钥

ssh-keygen -t rsa -C "your email"

可以通过命名活着放在不同的目录进行区分。

添加新的SSH keys到GitHub中

将新生成的SSH keys添加到你的另一个github帐号(或者公司的gitlab)下的SSH Key中。

清除git的全局设置

如果你之前在设置本地仓库和github连接的时候设置过user.name和user.email,那么你必须首先清楚掉该设置,因为不清楚掉该设置,两个账号在提交资料的时候,验证肯定冲突(只能设置一个全局的user.name和user.email,而你现在有两个账号就对应两个不同的)。

git config --global user.name "your_name"
git config --global user.email  "your_email"

执行ssh-agent让ssh识别新的私钥

分别使用ssh-add将其添加到ssh-agent中。

ssh-add ~/.ssh/id_rsa

注:直接执行ssh-add是临时的,可以执行ssh-add -K将其永久添加

如果出现Could not open a connection to your authentication agent的错误,可以先执行一遍ssh-agent bash,之后在执行ssh-add

配置config文件

看下~/.ssh/目录下有没有config,没有直接新建一个touch config,有的话就直接在后边添加配置。

配置如下:

# 第一个

Host git@one.github.com
 HostName https://github.com
 User git
 IdentityFile ~/.ssh/one/id_rsa

# 第二个

Host git@two.github.com
 HostName https://github.com
 User git
 IdentityFile ~/.ssh/two/id_rsa

# ....第N个

测试

ssh -T git@one.github.com
ssh -T git@two.github.com

clone Git仓库

假设原来的git ssh 地址是git clone git@xxxxxx.com:xxx/test.git

那么新的地址就对应配置config时候不同的密钥对应的HostName,

比如是上边的one,那么,新地址就应该是git clone git@one.xxxxxx.com:xxx/test.git

当然,如果懒得话,不改地址也是可以的,同样可以正常的操作,但是在push到仓库后,可以看见多个头像。