使用公钥连接 SSH
八月 20, 2021
1921
前言
每次 ssh 登录服务器都要重新输入一次密码?记住密码又怕不安全?一个更好的解决办法是使用公钥文件,只需一键点击,就可登录到远程服务器。
环境配置
- Win10 本地主机
- 远程 Linux 服务器
- Xshell 客户端
关键步骤
分为本地端和服务端,分别进行设置。
本地端
主要是生成本机的密钥,有两种方式,一种是Xshell 软件生成,另一种是通过一行代码。
方法一:Xshell 生成
- 新建连接 –> 选择
Public Key
方式 –> 浏览 –> 用户密钥,点击生成
,软件会自动生成2048位的公共密钥
- 保存密钥到本机指定位置,推荐
C:\Users\<username>\.ssh
文件夹,还可以为密钥文件加密存储
方法二
之前在 GitHub 登录时使用过,可输入下列命令,由系统自动生成,保存位置同样在 C:\Users\<username>\.ssh
文件夹
1 |
|
按照提示完成三次回车,即可生成 ssh key。通过查看 C:\Users\<username>\.ssh\id_rsa.pub
文件内容,获取到你的 SSH key
服务端
- 登录远程服务器,生成密钥对
1 |
|
注:生成的密钥文件保存在~/.ssh
文件夹内
2.1 手动上传本地密钥到远程主机
本段为根据 SSH 密钥登录 增补的内容,只需一行代码,自动上传并完成 #2.2 手动的工作。
使用 ssh-copy-id
命令:自动上传公钥
1 |
|
-i
参数用来指定公钥文件,user是所要登录的账户名,host是服务器地址。
公钥文件可以不指定路径和.pub
后缀名,ssh-copy-id
会自动在~/.ssh目录里面寻找,要做的只是把公钥文件名写对。
注意: ssh-copy-id是直接将公钥添加到authorized_keys文件的末尾。如果authorized_keys文件的末尾不是一个换行符,会导致新的公钥添加到前一个公钥的末尾,两个公钥连在一起,使得它们都无法生效。
2.2 上传本地密钥到远程主机
上传本地生成的 id_rsa_233.pub
密钥文件到远程主机,可以 sftp
上传(路径 ~/.ssh/
),也可通过以下命令:
1 |
|
- 服务端授权
1 |
|
- 修改 sshd 配置文件
1 |
|
在文件最末尾加入下列代码并保存:
1 |
|
- 重启 sshd 服务
1 |
|
至此,就可以在本机实现无密码登录服务端啦~
Ref
Changelog
- 210913 增补自动上传公钥的内容
- 210825 订正上传到远程主机的有误表述
- 210820 init
- 本文作者:米斯特乌
- 文章标题:使用公钥连接 SSH
- 本文链接:https://m.wuzhiping.top/p/6d21cf19.html
- 版权声明:博客内容采用 BY-NC-SA 4.0 许可协议,转载请注明出处!
查看评论