可以说我在几年前就想过使用密钥登陆服务器的了,那还是我偏爱Debian系统的时候就在折腾如何使用上密钥登陆,无奈自己那渣渣技术老是不能折腾成功不得不在这一直以来都只能使用密码登陆了。不过就在现在被我折腾成功了虽然最后不知道原因导致Apache权限不足还是什么的无法正常使用只能再次放弃了,但是就使用密钥登陆来说它是成功的了。
为了以便自己在后续的使用中能转到密钥登陆就在这里水一下了。
我测试所用的系统 CentOS 7.6.1810 (x86_64 built on 20190619)
1.生成密钥(PS:在之前我都是通过本地的PuTTYgen来生成密钥的)
ssh-keygen -t rsa
回车设置成默认的目录~/.ssh
,输入或者留空密码。
将密钥目录下面的id_rsa
和 id_rsa.pub
下载会本地。
2.配置ssh使用密钥
当把上述两个文件下载会来后就将.ssh
中的id_rsa.pub
复制并改名字为authorized_keys
cd .ssh cp id_rsa.pub authorized_keys
修改authorized_keys权限为700(必须修改为700,不能为其他)
chmod 700 authorized_keys
修改sshd_config文件
vim /etc/ssh/sshd_config
或者
vi /etc/ssh/sshd_config
或者想我一样使用WinSCP直接编辑(最后还是使用vi编辑才成功密钥登陆的)
StrictModes no PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys #ssh文件位置 PasswordAuthentication no #使用密码 no为不使用密码
其实对于PasswordAuthentication
白嫖的Google Cloud默认就是PasswordAuthentication no
只是我之前为了能直接使用PuTTY登陆就改成PasswordAuthentication yes
这次相当于改回原来的设置。(之前没还是PasswordAuthentication yes
的时候还是可以直接密码登陆,可以姿势不对或者这才是正确姿势在之前因为这个没有成功)
重启ssh服务
systemctl restart sshd.service
现在直接登陆就会报错误了(没有单独的截图就暂时不放了。)
3.使用Putty加密钥登陆
使用PuTTYgen生成ppk文件(步骤略)(如果在之前的生成密钥时有密码在转换的时候需要输入设置的密码)
将生成的私钥保存。
打开PuTTY输入IP、端口选择PPK私钥然后登陆。
如果有输入正确的“密钥密码”完成登陆。
在这之前我都没能设置成功使用密钥登陆(服务商一键除外),当我高兴的将环境搭好升级到最新的就是Apache错误最好只得伤心的删除当前实例……
参考
linux使用密钥+密码登录ssh(centos7)https://www.jianshu.com/p/b1eeb3f1a2c1
参考千千万,当我折腾成功再搜索的时候又发现了许多差不多的(雾~自己这个不也是)最好就惯例的留下搭建时看的了。
ChiuYut
2019年7月25日