SSH 密钥登录
SSH
SSH(secure shell)是目前主流的 管理远程主机 的 加密通信协议。
通信双方是 SSH Client(客户端) 和 SSH Server(服务端)
使用这种协议操作远程主机的第一步就是要 登录
。
登录 SSH 服务器的方式有多种,最常见的可能是通过 密码
登录。
但是,最推荐的是通过 SSH密钥
登录, 这是目前最安全、便捷的登录服务器的方式。
现在的 服务端主流都是采用 Open SSH Server,安装也非常方便。
这里主要介绍其对应的客户端 Open SSH Client 的安装设置
Windows 环境客户端设置
1 安装 OpenSSH 客户端
本文写作时间2023年,Windows 10 和 Windows 11 已经早就内置支持了OpenSSH, 并且默认安装了 OpenSSH 客户端。
所以,通常不需要你安装。
如果你在命令行执行 ssh
提示没有找到程序,说明 Open SSH Client 没有安装。
通过下面的方法安装
以管理员权限
运行 Powser Shell
执行如下命令
会看到类似如下输出
Name : OpenSSH.Client~~~~0.0.1.0
State : NotPresent
Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent
然后执行
Name 参数的值就是前面命令出现的 OpenSSH Client 的 Name
有时发现安装会卡死状态, 这时可以重新启动电脑。多试几次。
安装完成后,可以成功执行 ssh 命令了
2 产生 SSH 公私钥文件
安装好 OpenSSH Client 后, 会有一个内置命令 ssh-keygen
用来产生 SSH 公私钥文件。
这是一对文件, 公钥放在服务端, 私钥放在客户端。
SSH 服务端和客户端通过 他们来进行身份验证。
执行这个命令 ssh-keygen
出现类似 下面这些提示直接回车
Enter file in which to save the key (C:\Users\byhy/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
最终提示类似下面这样:
Your identification has been saved in C:\Users\byhy/.ssh/id_rsa.
Your public key has been saved in C:\Users\byhy/.ssh/id_rsa.pub.
说明 SSH 公私钥文件成功产生,
C:\Users\byhy/.ssh/id_rsa.pub
是公钥文件
C:\Users\byhy/.ssh/id_rsa
是私钥文件
3 公钥文件内容配置到服务主机
这一步的本质是: 把公钥内容添加到 到服务端登录账号 根目录下的 .ssh/authorized_keys
文件中
方法1:直接编辑远程 .ssh/authorized_keys
文件
-
文本编辑器打开 id_rsa.pub 文件, 全选并复制里面的文本内容
-
远程登陆到 服务端, vim 打开
.ssh/authorized_keys
文件,文件末尾添加一行, 把复制的id_rsa.pub 文件内容粘贴进去 -
保存文件
方法2:使用 Winscp 软件 自动设置
如果你安装了 Winscp 软件
-
打开会话管理, 选择 edit, 点击 advanced 按钮
-
弹出对话框中左边点击 SSH - Authentication
-
右边点击 tools , 弹出下拉菜单选择 Install Public Key into server
-
弹出文件选择框里面 选择 All Files, 然后选择刚才产生的公钥文件 id_rsa.pub 开始上传。
上述这3步成功后, 再运行ssh命令, 比如 ssh root@hostname
,应该可以使用自动使用对应的 密钥 认证了。
也可以 ssh root@hostname -i c:\Users\byhy\.ssh\id_rsa
指定使用私钥文件