配置SSH使用多个id_rsa密钥的方法

有时候我们需要配置多个SSH的id_rsa私钥,比如用于github的id_rsa,同时又有用以另一台服务器的id_rsa,但.ssh目录下仅能存在一个默认名称的id_rsa密钥文件,那如何实现配置多个id_rsa密钥的需求呢?

其实非常简单,步骤如下:

1. 复制密钥

复制所有的id_rsa密钥到.ssh目录下,我这里是用于github的id_rsa和用于服务器192.168.0.254的id_rsa。
cp /home/github/id_rsa ~/.ssh/github-id_rsa
cp /home/server/id_rsa ~/.ssh/server-id_rsa

2. 创建config文件

在当前用户目录下的.ssh目录中创建config文件:
cd ~/.ssh
touch config

3. 编辑config文件

在config文件中,根据你的实际情况,键入下面的内容:
Host github.com
User huaiyinfeilong
IdentityFile .ssh/github-id_rsa
Host 192.168.0.254
User root
IdentityFile .ssh/server-id_rsa

4. 测试

现在我们通过下面两条命令都可以直接使用SSH连接到github和192.168.0.254的服务器了:

git clone git@github.com:huaiyinfeilong/my-private-repository.git
ssh root@192.168.0.254

禁止直接通过IP访问nginx上的站点

如果想要禁止使用IP直接访问nginx上的网站,只需要进行如下配置即可:

server
{
listen 80 default_server;
server_name _;
return 444;
}

禁止直接使用IP访问,可以有助于SEO优化,实现仅通过指定域名访问。另外,还可防范恶意A记录解析等安全风险。

nginx下一行配置搞定ThinkPHP伪静态

我们先来看下这行神奇的代码:

try_files $uri $uri/ /index.php?s=$uri;

没错,就是这么简单,只要把上面这行代码放到nginx网站配置文件的root下方即可:

root /data/wwwroot/mysite;

try_files $uri $uri/ /index.php?s=$uri;

是不是很简单呢?

原理非常简单,try_files命令用以判断给定的各项是否存在,如果不存在,就执行最后一项。ThinkPHP的伪静态,就是index.php?s=$uri,所以,如此简单便可完成了伪静态的配置。