用户:天明/如何使用SSH安全地链接服务器?
< 用户:天明
个人自行翻译,如有侵权或其他伤害利益的行为,请联系本人修改或删除。
如果你正在部署应用、配置VPS或云服务器,你可能需要通过SSH来进入你的服务器。SSH访问是DevOps和后端开发最重要的基础技能之一,但同时也是容易产生误解的技能。
本指南将带你完整了解一遍相关概念,“SSH是什么?”、“SSH怎么用?”以及一些其他的小技巧。
SSH是什么?
安全外壳协议(简称为SSH),是一种网络连接手段,能够将本地电脑与远程机器在加密隧道中实现通信。它使得你能够在本地终端中输入命令,这些命令将会在远程机器里执行。
SSH实际在做这三样事情:
- 验证你的身份(通过密码或密钥)
- 加密你发送的所有东西
- 防止窃听、篡改和中间人攻击
如果你有使用AWS、DigitalOcean或者腾讯云、阿里云之类的云服务商提供的机器,那你基本上就是通过SSH连接的。
SSH基本用法
这是一条最简单的SSH命令:
ssh username@server_ip
而实际一点的例子是
ssh ztm0929@192.168.1.2
这将会让你以 ztm0929 的用户身份登录局域网内一台机器,这台机器的地址是192.168.1.2。
SSH进阶用法
配置密钥认证(最佳实践)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ssh-keygen -t rsa -b 4096 -C "ztm0929@icloud.com"
引号内可以替换为自己的真实邮箱,这只是一种记录,无伤大雅。
这将会创建两个文件:
~/.ssh/id_rsa:这是一份不能分享给任何人的私钥文件;~/.ssh/id_rsa.pub:这是一份公钥文件,需要放到你想要连接的服务器里;
放置公钥的方法有很多,最常用的是这种形式:
ssh-copy-id username@server_ip ssh-copy-id ztm0929@192.168.1.2