ssh远程连接服务器教程¶
约 1042 个字 11 行代码 3 张图片 预计阅读时间 5 分钟
ssh远程连接服务器教程¶
检查是否已有 SSH 密钥¶
首先,你需要确认本地是否已经生成了 SSH 密钥。如果没有,可以按照以下步骤生成。
生成 SSH 密钥(如果没有)¶
- 打开终端(命令行),然后输入以下命令来生成新的 SSH 密钥对:
这里的 your_email@example.com 是你 GitHub 注册账户的邮箱。
2. 然后会提示你选择保存密钥的路径,一般直接按回车键,默认路径是 ~/.ssh/id_rsa。
3. 如果提示设置密码(passphrase),你可以选择为空,或者设置一个密码。
4. 完成后,你的 SSH 密钥会生成在 ~/.ssh/ 目录下:
- 公钥:
id_rsa.pub - 私钥:
id_rsa
| 文件 | 作用 |
|---|---|
| config | SSH 连接配置文件,可以给不同服务器设置别名、私钥路径、端口、用户名,直接ssh 别名就能连接,不用每次敲一长串参数 |
| id_rsa | RSA 私钥,极其重要,不能泄露,用来身份认证,不要发给别人 |
| id_rsa.pub | RSA 公钥,可以公开,把它内容写到服务器~/.ssh/authorized_keys,实现免密登录 |
| known_hosts | 已知主机清单。第一次连服务器会把服务器公钥存这里,防止中间人攻击;服务器重装系统后会报密钥冲突 |
| known_hosts.old | known_hosts 的备份旧文件,更新 known_hosts 时自动生成 |
| lihe1.id_rsa | 自定义命名的私钥文件,多套密钥场景使用,一般在 config 里指定使用这个私钥连接特定服务器 |
服务器端¶
这里我以宝塔运维的文件管理面板为例
| 文件 | 功能说明 | 权限(图中) |
|---|---|---|
.authorized_keys.swp | vim 编辑authorized_keys产生的临时交换文件,编辑异常残留,可以直接删除 | 600/root |
| authorized_keys | ✅核心文件,存放所有客户端的公钥 (.pub 内容) 。客户端私钥匹配这里的公钥,即可免密登录服务器。权限必须严格600,权限过大 SSH 会拒绝免密登录 | 600/root |
id_ed25519 | ed25519 算法私钥,服务器本机生成的密钥,一般本机 ssh 连接别的机器使用,不要泄露 | 600/root |
id_ed25519.pub | ed25519 对应的公钥,可以公开 | 644/root |
known_hosts | 记录本机连接过的其他服务器公钥,防止中间人攻击 | 600/root |
known_hosts.old | known_hosts 更新时自动生成的备份文件 | 644/root |
authorized_keys文件创建¶
我们需要做的就是把我们本机的id_rsa.pub公钥文件的内容放到服务器的authorized_keys文件内,这样当我们通过ssh连接时才会私钥验证成功 —— 允许登录。
法一¶
可以通过宝塔面版图形化创建authorized_keys文件随后把本机的公钥文件的内容完整复制到里面即可
内容示例
Ruby
ssh-rsa sdifsfidsi(一串字符串,已作脱敏处理,这是我们添加进去的本地电脑公钥)
ssh-ed25519 AAAA3N1lZDI1(一串字符串,已作脱敏处理,这个是服务器自带的自己的公钥)
法二 手动创建 authorized_keys¶
1. 进入 SSH 配置目录¶
服务器执行:
如果不存在:
设置目录权限:
2. 创建 authorized_keys 文件¶
创建:
或者直接:
3. 写入客户端公钥¶
打开本地电脑:
查看公钥:
例如:
复制完整一行内容。
进入服务器:
粘贴:
保存:
vim:
4. 设置 authorized_keys 权限¶
SSH 对权限要求严格。
执行:
查看:
正常:
表示:
后续连接使用¶
打开你的cmd执行这条命令就可以远程操作服务器了!
连接的同时执行命令在服务器¶
查看服务器目录¶
例如查看 /root:
执行多个命令¶
用 &&:
等价于服务器执行:
启动服务¶
例如启动 Docker:
查看状态:
执行服务器脚本¶
比如服务器有:
本地:


