最后,就会生成私钥和公钥,屏幕上还会给出公钥的指纹,以及当前的用户名和主机名作为注释,用来识别密钥的来源 。
公钥文件和私钥文件都是文本文件,可以用文本编辑器看一下它们的内容 。公钥文件的内容类似下面这样 。
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAvpB4lUbAaEbh9u6HLig7amsfywD4fqSZq2ikACIUBn3GyRPfeF93l/weQh702ofXbDydZAKMcDvBJqRhUotQUwqV6HJxqoqPDlPGUUyo8RDIkLUIPRyqypZxmK9aCXokFiHoGCXfQ9imUP/w/jfqb9ByDtG97tUJF6nFMP5WzhM= username@shell.isp.com
上面示例中,末尾的username@shell.isp.com是公钥的注释,用来识别不同的公钥,表示这是哪台主机(shell.isp.com)的哪个用户(username)的公钥,不是必需项 。
博主在使用时删除了末尾的注释,亲测可以使用注意,公钥只有一行 。因为它太长了,所以上面分成三行显示 。
手动上传公钥生成密钥以后,公钥必须上传到服务器,才能使用公钥登录 。
OpenSSH 规定,用户公钥保存在服务器的~/.ssh/authorized_keys文件 。你要以哪个用户的身份登录到服务器,密钥就必须保存在该用户主目录的~/.ssh/authorized_keys文件 。只要把公钥添加到这个文件之中,就相当于公钥上传到服务器了 。每个公钥占据一行 。如果该文件不存在,可以手动创建 。
用户可以手动编辑该文件,把公钥粘贴进去,也可以在本机计算机上,执行下面的命令 。
$ cat ~/.ssh/id_rsa.pub | ssh user@host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
上面示例中,user@host要替换成你所要登录的用户名和主机名 。注意,authorized_keys文件的权限要设为644,即只有文件所有者才能写 。如果权限设置不对,SSH 服务器可能会拒绝读取该文件 。
$ chmod 644 ~/.ssh/authorized_keys
只要公钥上传到服务器,下次登录时,OpenSSH 就会自动采用密钥登录,不再提示输入密码 。$ ssh -l username shell.isp.comEnter passphrase for key '/home/you/.ssh/id_dsa': ************Last login: Mon Mar 24 02:17:27 2014 from ex.ample.comshell.isp.com>
上面例子中,SSH 客户端使用私钥之前,会要求用户输入密码(passphrase),用来解开私钥 。需要注意的是在Windows terminal中ssh-copy-id无法使用,只能手动上传密钥创建示例附上我的密钥创建实例:
PS C:Usersadmin> ssh-keygenGenerating public/private rsa key pair.Enter file in which to save the key (C:Usersadmin/.ssh/id_rsa): C:UsersadminOneDrive/.ssh/id_rsaEnter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved inC:UsersadminOneDrive/.ssh/id_rsa.Your public key has been saved in C:UsersadminOneDrive/.ssh/id_rsa.pub.The key fingerprint is:***The key's randomart image is:***PS C:Usersadmin> cat C:UsersadminOneDrive/.ssh/id_rsa.pub//此步显示所创建的公钥,复制所有内容PS C:Usersadmin> ssh kerm@52.184.**.**kerm@HK1:~$ sudo -iroot@HK1:~# mkdir -p ~/.sshroot@HK1:~# nano ~/.ssh/authorized_keys//将之前复制的公钥贴入,我将=号后的内容删除,因为有多台设备利用这个公钥登录root@HK1:~# chmod 644 ~/.ssh/authorized_keys
备注:为了实现多端同步免密登录,这里我密钥的存储位置选为了OneDrive同步文件夹 。这样虽然不安全,但是很方便 。将登录信息写入配置文件,一键登录
也可以直接编辑配置文件 。新版既然已经提供GUI,我就直接在GUI操作了 。导航栏下拉进入设置-配置文件-添加新配置文件-新建空配置文件 。在命令行一栏填入:
ssh -i 密钥路径 user@ip示例:ssh -i C:UsersadminOneDrive/.ssh/id_rsa root@52.184.***.**
其他参数,例如名称、外观可以参照另外一篇文章进行自定义 。这里不做赘述 。保存,导航栏下拉找到对应配置名称即可一键连接 。也可以使用快捷键:
文章插图
效果
同步问题理论上是可以多端同步的,但是目前我两台电脑上的配置还没有同步,不知道为什么 。
附录参考文章
- Settings synchronization · Issue #1721 · microsoft/terminal (github.com)
- SSH 密钥登录 - SSH 教程 - 网道 (wangdoc.com)
推荐阅读
- Windows 11 Build 22523发布,更多选项从控制面板移至设置
- Windows Server 2022 中的 Hyper-V 增强功能
- Windows11都出来了,XP和Windows7真的被淘汰了吗
- Windows10系统网络安装部署
- windows8笔记本连接wifi受限怎么办,笔记本无法连接无线网络
- 通过windows的CMD终端查看WIFI密码
- windows下通过多网卡和路由实现同时在多网络环境工作
- Windows命令行包管理工具scoop使用教程
- 使用 MDT 下载部署 Windows 11 局域网批量安装252台
- 如何在Rescue模式下配置网络和SSH登录