SSH公钥登录且禁止密码登录及更改默认端口
1、ssh生成公私钥
ssh-keygen -t rsa -C "zhangsan@qq.com"
生成密钥的位置如下,id_rsa是私钥、id_rsa.pub是公钥:
➜ .ssh pwd /Users/xxxxx/.ssh ➜ .ssh ls config id_rsa id_rsa.pub known_hosts
注意:id_rsa一定不能泄露,否则。。。
2、设置密钥登录
到需要登录的服务器工作目录,把刚刚生成的公钥内容拷贝到,远程服务器下的authorized_keys文件中
[root@xxxxxx .ssh]# ls authorized_keys known_hosts [root@xxxxxx .ssh]#
保存之后退出终端,使用如下语句测试是否能正常登录(不需要输入密码)
ssh root@45.110.28.89
3、禁止密码登录
[root@xxxxxx ssh]# pwd /etc/ssh [root@xxxxxx ssh]# vim sshd_config
PasswordAuthentication 改为 no
4、修改默认端口(22)
[root@xxxxxx ssh]# vim sshd_config
找到#Port 22一行,默认是注释掉的,去掉注释之后填写自己的端口,最大不要超过65535
5、重新加载配置文件后生效
/etc/init.d/sshd reload
6、如果更改端口不能正常连接,请检查一下两点
- 防火墙是否拦截了请求,具体设置请参考iptables过滤设置服务端口
- 如果使用的是云VPS,请到管理后台修改安全规则,比如阿里云如下图: