配置 SSH 快捷登录
目前我有两台开发机,一台公司,一台私人,日常开发对开发机强依赖,但一直以来都是用最原始的方式登录机器, ssh root@xxx.xxx.xxx.xxx
,接着输入 password
,偶尔会出现密码和 IP 记混的状况,得尝试好几次,不妨用十分钟优化这个过程,一劳永逸。1
2
3
4
5
6
7
8
9
10
11
12
13 优化前
公司机器
ssh root@xxx.xxx.xxx.xxx
password: ******
私人机器
ssh root@xxx.xxx.xxx.xxx
password: ******
优化后
公司机器
ssh dev-server
私人机器
ssh leeon-server
网络上有海量的配置教程,因为过程遇到一个坑,所以花点篇幅记录下我的配置过程。
环境
- 本地
- 系统:MacOS
- 终端:iTerm2
- 开发机
- 系统:centOS
设置主机别名
我们可以通过 SSH 配置文件配置主机别名,取代长串的 IP,用 root
权限打开 /etc/ssh/ssh_config
或 ~/.ssh/config
进行配置
1 | 配置别名,别名自定 |
现在我们可以通过别名进行登录
1 | ssh leeon-server |
现在不用输长串 IP,但是仍需要密码,下面设置免密码登录
设置公钥登录
如果你用过 git 远程仓库,对公钥 public key
肯定不陌生,这里提一下如何生成密钥
生成公钥
生成公钥很简单,执行 ssh-keygen
一路回车,就在 ~/.ssh/
目录下生成了 id_rsa.pub
和 id_rsa
,但我不推荐这种方式。
如果开发机较多,为了方便管理不同的开发机(公司机器、个人机器),或者访问多个 Git 代码库,建议生成独立的公钥,这样你就不会手滑把公司的代码推上 Github ~
1 | 公司机器 |
配置 SSH 公钥登录
第一步
需要将我本地生成的公钥粘贴到开发机的 ~/.ssh/authorized_keys
文件中,如果没有 authorized_keys
文件,请新建。
配置我个人的开发机,将 id_rsa_leeon.pub
内容粘贴到开发机的 ~/.ssh/authorized_keys
中,
配置公司开发机,则将 id_rsa_dev.pub
内容粘贴到开发机的 ~/.ssh/authorized_keys
中。
第二步
需要修改本地的 SSH 配置文件
1 | 个人开发机 |
下面我们就可以尝试免密码登录了
免密码登录
登录我的个人开发机试试
ssh leeon-server
登陆成功!
提示错误 ?
我第一次尝试免密码登录时遇到以下错误,
提示错误: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
尝试将开发机中的 .ssh
目录权限设置为 600 或者 700
1 | chmod 700 .ssh/ |
安全配置
为了服务器的安全,我们需要做一些必要的配置,需要对 /etc/ssh/sshd_config
的配置进行修改
1 | 关闭允许任何密码认证 |
保存修改,执行 service sshd restart
命令,生效配置,修改完,不要急着退出,先验证能再次登录再退出,可以避免被自己锁门外……
作者: leeon
来源: https://leeon.im
链接: https://leeon.im/ssh-login-directly/
本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可