mac 免密码登录 vps (SSH 公钥认证)
2017-03-09
使用root 免密登录,禁止root 的情况又不一样,有机会写出来。
- 昨天刚弄了一个新的 vps ,晚上挂机自动安装 lnmp,一早看就 cpu 异常,果断是机器在暴力破解 root ,登录进去,查看
1 | tail -f /var/log/secure |
- 果然有许多:
1 | Failed password for root from 116.31.116.34 port 41014 ssh2 |
远程服务器:centOS,本地macOS,iTerm2
改端口。
打开/etc/ssh/sshd_config文件:
1 | ssh [email protected] #输入密码 |
找到:Port 22 #SSH端口,修改为非常用的高位端口:1024-65535之间的一个。先不重启 ssh 服务。
配置 SSH 密钥登录远程服务器
在Mac上生成公钥和私钥,如果没有的话
1 | sh-keygen -t rsa -C "[email protected]" |
生成密钥对,其中 -t 指定密钥类型,默认即 rsa ,可以省略,-C 设置注释文字,比如你的邮箱,且默认为 2048 字节,可改为4098 字节, -p 4098
可以接受除密码之外的所有内容的默认值,此处的密码是给本地密钥加的密码,如果不要,一路回车下去,
- 新生成的SSH密钥位于
/.ssh/目录中。您将在/.ssh/id_rsa文件中找到私钥,并在文件中找到公钥~/.ssh/id_rsa.pub。
将公钥发送到要远程登陆的服务器上
- 登录服务器:
1 | cd ~ |
本机
mac:将公钥复制到远程机器~/.ssh/authorized_keys上的文件中
1 | scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh |
scp 命令是需要输入 服务器 对应账户的密码的。
- 在服务器建立 authorized_keys 映射,即将密钥复制到
authorized_keys
文件
1 | cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys |
- 配置:在服务端打开 authorized_keys
1 | cd /etc/ssh/sshd_config |
- 重启 ssh 服务
1 | systemctl restart sshd #没有任何输出。检查是否重启 |
- 避免出错登录不上去,再开一个命令窗口测试登录,此处为:iTerm2
1 | ssh -p端口 [email protected] |
iTerm2 设置快捷登录
iTerm2 中设置: preferences -> profiles -> 左下角,点击 +
name: 取个别名
command ,command 填写:ssh -p端口 [email protected]
直接在 iTerm2 上方菜单 Profiles 选择服务器快捷登录,非常方便。
参考: