SSH 免密登陆, SSH Config 配置
本文最后更新于:5 年前
最近又在捣腾捣腾自己的博客,作死的将阿里云磁盘重置了一下。需要重新配置一个SSH登陆的秘钥,发现忘了该怎么开始,这里整理下一些日常用的SSH相关姿势==。
SSH是什么
SSH (Secure Shell) 简单来说就是一种用于计算机之间加密登陆的网络协议。使用SSH协议登陆到另外一台计算机,能有效的保证远程管理过程中的数据安全。
SSH免密登陆
生成RSA秘钥对
SSH相关的秘钥一般都存放在~/.ssh
目录下面。如果你和我一样~/.ssh
目录存在以下的两个文件:
- id_rsa
- id_rsa.pub
这就说明RSA秘钥对已经有个这个步骤你可以直接跳过。如果没有,继续。
1 |
|
到这里,秘钥对已经生成。
在服务器安装授权秘钥
1.根据公钥生成授权秘钥。
1 |
|
2.上传授权秘钥到服务器。
1 |
|
- 登陆服务器,配置authorized_keys。
1 |
|
4.设置SSH,打开密钥登录功能。
相关的SSH设置,在/etc/ssh/sshd_config
文件内。
1 |
|
修改完后,保存文件,重启SSH服务。
1 |
|
最后,验证一下。如果和我一样直接登陆成功,恭喜你免密登陆成功了。
1 |
|
修改SSH端口
修改SSH配置文件
我们常用的SSH端口是22,为了提高安全性,你可以将其修改到一个不常用的端口。
同样是修改/etc/ssh/sshd_config
文件。
我们能看到
1 |
|
将Port注释删掉,修改22为你想要的端口号,注意不要与常用的端口后冲突。
然后重启SSH服务。
1 |
|
CentOS8 在你执行上面命令启动会报错,需要申明端口类型。
1semanage port -a -t ssh_port_t -p tcp 54321
放行端口
当然这还不够,还需放行刚刚修改的SSH端口。
修改安全组
我用的阿里云只需要在在安全组规则中的公网入网方向添加该端口范围即可,如下图所示:
iptable 放行
如果你用的其他的也许还需修改iptable. 操作如下:
1 |
|
firewall 放行
如果你是Centos8, 开启了firewall,那可能需要修改firewall。
1 |
|
到这里,端口就愉快的修改完成了。 你可以这么登陆ssh -P 54321 root@xxx
,如果你还觉得麻烦,下面还有更简单的方法。
SSH相关技巧
别名登陆
你还在为每次SSH, 要输入长长的用户名而烦恼吗?
你还在为每次SSH, 要带这长长的参数而烦恼吗?
你还在为每次SCP, 依然要带这长长的参数而烦恼吗?
你还在犹豫什么, 别名登陆给你解决烦恼。
首先你需要在你的~/.ssh
目录下添加文件名为config
的文件,文件内容如下:
1 |
|
接下来你直接使用$ ssh razeen
就可以登陆服务器了,使用scp file.xxx razeen:/xxx/xxx
就可你将本地的file.xxx
文件拷到服务器/xxx/xxx
目录下, 是不是方便了很多。
参考
[1] https://deepzz.com/post/how-to-setup-ssh-config.html#toc_4
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!