最近加入项目中,成员名安全意识比较差,远程登录服务器只用账号密码。今天,写篇SSH 登录远程的配置。
前置条件:
1、一台主流的Linux服务器,如CentOS,Ubuntu,Fedora,redhat等
2、一台能连上以上服务器的客户机,我用的mac,系统是osx
预备动作:
1、打开终端 Terminal
2、生成ca证书私钥与公钥
2.1 ssh-keygen
此时终端会提示需要把证书文件放在哪个目录,一般而言,默认即可,也方便需要证书的程序能快速访问得到。然而往往我们的服务器可能是很多个,而且角色也会有不同。这就需要我们把不同的证书按需要放在不同的目录,现在,我们把证书按需要放到指定目录:
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/shuxian/.ssh/id_rsa):/你需要的目录/
然后会让你输入密码:
Enter passphrase (empty for no passphrase):
这时候看自己的需要,建议还是要加个密码的,不然证书泄露后,至少还有密码作最后的防线。
然后一路 Enter,直到生成证书如下:
重点
1、将证书公钥放到服务器上,执行以下命令,-p 及之后的可以不用,就会默认用22端口,具体视服务器ssh端口的配置。
$ ssh-copy-id -i /刚刚保存的证书目录/id_rsa 你的登录名@服务器地址 -p 端口号
2、此时你会看到如下信息,确认后,yes即可
The authenticity of host '你的登录名@服务器地址' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
3、yes后会让输入登录密码
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
你的登录名@服务器地址's password:
4、输入正确后,将会收到如下信息
Number of key(s) added: 1
Now try logging into the machine, with: "ssh '你的登录名@服务器地址'"
and check to make sure that only the key(s) you wanted were added.
5、尝试使用证书免密码登录, 如果证书加了密码,会让输密码,端口号是服务器的ssh端口号
ssh 你的登录名@服务器地址 -p 端口号 -i ~/证书目录/id_rsa
Enter passphrase for key '/证书目录/id_rsa': [输入密码]
Last login: Wed Feb8 21:28:09 2017 from *****
6、大功告成
补充语,下一步我们需要做的,禁止用户账密登录。登录一律使用证书,如何操作,请参考我的下一篇文章,谢谢!
如有误,请留言批评指正,大家共同进步!