在IDEA中通过密钥认证的方式使用SSH连接远程Linux服务器

Posted 二木成林

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在IDEA中通过密钥认证的方式使用SSH连接远程Linux服务器相关的知识,希望对你有一定的参考价值。

引入

如图,其中Password是通过密码的方式,即你只需要知道远程服务器指定用户的登录密码,你可以连接它;而Key pair则是通过密钥的方式,即你需要在本地服务器上生成公钥证书,然后上传到指定的远程服务器上才能进行访问。

至于为什么不通过密码连接而需要通过密钥连接呢,因为我不知道我想要连接的远程服务器的密码,但我又需要去连接它,同时我也拥有远程服务器的root权限,所以才考虑使用密钥连接的方式。其中使用密码连接远程Linux服务器请参考:使用IDEA中的SSH连接远程Linux系统服务器

注:我这里是使用Windows系统上的IDEA去连接远程Linux系统。

步骤

在Windows上生成公钥证书

  • 第一步,执行Win+R命令输入cmd打开DOS命令行窗口。

  • 第二步,在命令行窗口中输入ssh -V查看ssh版本号,判断ssh是否可以用,因为我们需要通过ssh来生成证书文件。


如果打印出版本号则表示ssh命令可用,如果没有则需要安装Open SSH工具,安装请参考博客的末尾。

  • 第三步,ssh命令可用的话,就继续在命令行窗口输入ssh-keygen -t rsa生成公钥证书和私钥证书文件。生成的目录也指明了,通常在用户的.ssh目录下,其中id_rsa是私钥证书文件,id_rsa.pub为公钥证书文件。



这两个文件都会被用到,很重要。

将公钥证书放到Linux服务器上

在上一步中,我们已经在本地Windows系统生成了公钥证书和私钥证书,接下来就是要让远程Linux系统信任本地Windows系统,所以需要将在Windows系统生成的公钥证书文件id_rsa.pub放到Linux系统的/root/.ssh目录下,如果没有这个目录则执行mkdir -p /root/.ssh命令进行创建。但是具体步骤如下:

  • 第一步,复制Windows系统下.ssh目录下生成的公钥证书文件id_rsa.pub的内容。下面的内容是我本地生成的,只是作为示例:
ssh-rsa AABCD3NzaC1yc2EAAAADAQABAAABAQDsQotEkKEto+tKtPe/f+Vqa6wYyVcrKYctzH9ufBKDCpuPx+GfudUZjXtHRYZExYRvoZPfJPRs+apsiO4EDjREFxCHJSrzhcY5Z/f01dUfMXWSJSG/jWyU+ihBa1AsHYpzBvspnkQ0YZJM/2C4YBNEiBGR44EFGP0VDm97Gprt7bUMst3r1AzieEbd2D6UeRtjJ9HfA//uV9VIIpfF0CyJTx2/w4w4jMtwmDSD0R/Kf7ujz36hmlrhrYAIBYcRxZsi5F7qn4pXEGpicjQ31RpjCZjKx4d9/FYGEb43s4Ufc47/hS4Hh0m4uTz7wYQk9 bbc@DESKTOP-L196HJJ
  • 第二步,在Linux系统的/root/.ssh目录下执行vi authorized_keys命令创建一个名为authorized_keys的文件,然后将第一步复制的id_rsa.pub的内容粘贴到该文件内。这样远程Linux服务器就信任本地的Windows系统服务器了,你可以在本地的Windows系统上通过ssh远程登录Linux系统了。

  • 第三步,测试。在本地Windows系统上输入ssh 用户名@IP地址进行远程登录。如果能登录成功并且能执行Linux命令表示配置成功。

注意:

  • 其实就是将本地Windows系统上的公钥证书文件id_rsa.pub文件上传到远程Linux系统上的/root/.ssh目录下并且重命名为authorized_keys
  • 如果已经存在authorized_keys文件了,那么直接将复制的内容添加到文件的最后一行。因为每一行都表示一条信任连接,不要去删除。

IDEA通过SSH连接远程Linux服务器

只有前两步操作成功,才能通过IDEA来远程连接。

  • 第一步,打开File,然后选择Settings...

  • 第二步,选择Tools下的SSH Configurations面板,点击+号选择新建SSH连接。

  • 第三步,输入连接参数。Host输入远程Linux服务器的IP地址;Port输入端口号,默认是22;User name输入登录的用户名;Authentication type选择Key pair表示通过密钥进行验证;Private key file则选择Windows系统下私钥证书id_rsa的目录,即在用户目录下的.ssh子目录中;Passphrase不用填。


  • 第四步,如果有多个连接,那么在SSH Terminal面板中的SSH configuration选择框中选择一台默认连接,或者选择Select SSH configuration on every run表示在每次打开时手动选择要连接的主机。

  • 第五步,在菜单条上的Tools中选择Start SSH Session...开启会话。在出现的Select Host to Connect面板中选择要连接的服务器。


  • 第六步,连接成功

其他

安装Open SSH

详细可参考官网:安装 OpenSSH

可以使用 Windows Server 2019 和 Windows 10 设备上的 Windows 设置安装这两个 OpenSSH 组件。

  • 第一步,在开始菜单,找到设置,打开后选择应用,接着打开应用和功能,选择管理可选功能




  • 第二步,扫描列表,查看是否安装OpenSSH,如果未安装,则在添加功能上进行添加。


如果未安装,则查找OpenSSH 客户端,进行安装;查找OpenSSH 服务器,进行安装。

安装完成后,回到可选功能就可以看到列出的OpenSSH了。

最重要的是打开DOS窗口,输入ssh -V命令验证是否可用。

以上是关于在IDEA中通过密钥认证的方式使用SSH连接远程Linux服务器的主要内容,如果未能解决你的问题,请参考以下文章

SSH密钥认证

Linux ssh安全设置,及免密码登录

Windows平台使用Navicat for MySQL通过SSH密钥认证连接远程MySQL数据库

在 Java 中通过 SSH 隧道运行远程命令

ssh协议及密钥的认证

linux——ssh远程访问,密钥的生成以及公钥的使用,上传与下载