快速配置ubuntu下使用证书登录

Standard

由于最近服务器老是被恶意尝试登陆,所以抽时间把登陆方式统一改为了证书登录的方式,以下是简单记录:
1、服务器端生成一个证书密钥对:输入密码以保护私钥:
#> ssh-keygen -t rsa

一般会在用户目录的.ssh目录下生成id_rsa和id_rsa.pub;

2、将id_rsa.pub内容添加到.ssh目录下的authorized_keys;注意由于authorized_keys支持多个公钥,所以需要保证添加的公钥是一行一个,并修改authorized_keys的权限为600;

3、修改ssh的配置文件/etc/ssh/sshd_config
把#AuthorizedKeysFile %h/.ssh/authorized_keys的#注释掉,即改为:
AuthorizedKeysFile %h/.ssh/authorized_keys

设置不允许密码登录:注释掉#PasswordAuthentication yes;并改为PasswordAuthentication no

4、重启ssh
#> service ssh restart
此时,验证是否成功。

5、putty不支持直接生成的私钥登陆,所以需要转换一下:
打开PUTTYGEN.exe,导入我们的私钥id_rsa,保存私钥即可。

6、在putty中使用私钥认证:输入服务器地址后,点击connection -> SSH -> Auth;在Private key file for authentication那里选择刚才转换的私钥即可。

解决Ubuntu GPG error: http://ppa.launchpad.net

Standard

有时候没有通过add-apt-repository添加ppa源,在使用apt-get update的时候,会有提示:

GPG error: http://ppa.launchpad.net intrepid Release: The following signatures couldn’t be verified because the public key is not available:
NO_PUBKEY 7DBC1644C5B39158

只是因为我们把ppa的源添加到了apt的source里面,但是没有添加keyserver。

可以使用以下办法解决:

gpg –keyserver subkeys.pgp.net –recv 7DBC1644C5B39158 ##7DBC1644C5B39158根据你的实际情况修改。
gpg –export –armor  7DBC1644C5B39158 | sudo apt-key add –  ##7DBC1644C5B39158根据你的实际情况修改。

成功后就能解决GPG error这个问题。

Apache将http跳转去https

Standard

给服务器配置了ssl证书,就想着把http统统转向去https,很简单的办法,当然,前提是启用了rewrite模块。修改站点下的.htaccess文件,添加如下内容

RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]

大致解释一下:

1:启动rewrite引擎

2:根

3:rewrite的条件是访问的服务器端口不是443端口

4:这是正则表达式,^是开头,$是结束,/?表示有没有/都可以(0或1个),(.*)是任何数量的任意字符 整句的意思是讲:启动rewrite模块,将所有访问非443端口的请求,url地址内容不变,将http://变成https://

就可以了,就像我的站点一样。