使用SSH配置文件进行SSH连接
SSH配置文件可以方便我们进行一个SSH连接。而不用每次连接的时候都输入账号和密码。
不使用配置文件进行连接(使用命令行方式)
那么我们在不使用配置文件的时候(使用命令行的方式)是如何建立连接的呢?
用密码登录
输入命令:ssh [email protected] -p 27275
用密钥登录
输入命令:ssh [email protected] -p 27275 -i ~/VPS_SSH_KEY/66.111.222.23.pri
通过-p参数指定端口(默认为22),-i参数手动指定私钥的路径。
~代表用户家目录,如果你电脑用户名为flix
对Windows系统来说,用户家目录的路径就是C:\User\flix\
对Linux系统来说就是/home/flix/
使用配置文件方式登录(基于密钥)
上面通过命令行的方式登录,麻烦的地方在于每次都要输入password或者私钥的passphrase,所以这里说一下SSH的配置文件方式来登录。
建立目录并创建文件
首先在用户家目录里建立.ssh文件夹(如果没有创建该文件夹),然后在.ssh文件夹里建立一个config文件。
Windows系统在新建.ssh文件夹时需要通过cmd命令来新建,在cmd窗口输入
mkdir .ssh
,然后再在.ssh文件夹中新建config文件。Linux系统按照顺序输入下面3个命令:
最后chmod为什么要输入,最下面的注意事项会说。1
2
3mkdir ~/.ssh
touch ~/.ssh/config
chmod 600 ~/.ssh/config
编辑文件内容
编辑config文件的内容,输入相关的配置:
1 | Host 66.vps |
Windows系统用记事本编辑config文件。
Linux系统输入命令vi ~/.ssh/config
来进行编辑。
上面的内容做一下说明,具体的配置你按照自己的配置进行替换,config文件中是用Host配置项来进行多个配置的分割。并用缩进符来进行一些子项配置。
- Host后面的文本内容可以随意命名,起一个标识作用,用于区分多个Host
- HostName用于指定主机地址,可以是域名或者ip地址
- Port用于指定主机端口,如果不写这一项默认端口为22
- User指定主机的用户名,就是命令
ssh [email protected]
@前面的用户名 - PreferredAuthentications 指定优先身份认证方式,由于我们是通过公私钥来与服务器进行验证交互,所以这里写publickey就行(默认是按照gssapi-with-mic,hostbased,publickey,keyboard-interactive,password这样的顺序来进行身份验证)
- IdentityFile就是指定私钥的路径
建立连接
经过这样的配置之后我们就可以使用ssh 66.vps
如此简单的命令来连接了。
1 | flix@flix-PC:~$ ssh 66.vps |
这样子是不是简单多了。
配置多个Host
我们也可以利用配置文件的方式来配置多个不同提供了SSH连接的主机。
下面是2个Github配置以及一个Coding.net的配置。
1 | Host github1 |
输入ssh -T github1
测试连接是否成功。
1 | flix@flix-PC:~$ ssh -T github1 |
注意事项
在Linux中,你的私钥文件,以及.ssh文件夹下的config文件,权限如果过于开放,那么在进行连接的时候会提示你Bad owner or permissions on ~/.ssh/config,目的是提醒你这些重要的文件你不应该对其他人开放较高的权限。解决这一问题的办法很简单。
只需要降低文件权限即可。
输入chmod 600 ~/.ssh/config
只给予当前读写权限。
私钥文件的权限也要这样设置。
1 | flix@flix-PC:~$ ls -l .ssh/config ~/Git_SSH_KEY/github.pri |
相关配置
也许有的人会好奇config文件里都可以配置哪些东西,这里就不描述那么多了,你可以看一下命令手册:《ssh_cofig》,Linux系统直接man ssh_config
。
其他SSH相关
Git SSH Key 生成步骤:http://blog.csdn.net/hustpzb/article/details/8230454
SSH密钥登录让Linux VPS/服务器更安全:https://www.vpser.net/security/linux-ssh-authorized-keys-login.html
使用 SSH config 文件:http://daemon369.github.io/ssh/2015/03/21/using-ssh-config-file