terminal采用公钥免密访问服务器

在使用ssh远程访问服务器一般都要输入密码,这次将此主机生成的公钥放入到服务器上,即可直接登录,无需输入密码,我这里是指使用terminal或者cmd等终端进行ssh登陆,并不是使用xshell6的登陆

参考连接

【GIT】git连接通过ssh连接github
WindowsTerminal内添加阿里云服务器(SSH)

本机(win系统)

本机生成rsa的私钥和公钥

因为这个rsa准备也用于github,所有输入以下命令,然后一路enter就行

  • Enter passphrase是设置密码用于保护私钥,你可以设置或者不设置,这里我没有设置密码,然后直接回车就行

为了让服务器git与github建立ssh关系,你可以使用这个语句生成密码
ssh-keygen -t rsa -C "{你的github账号}"

普通的生成方式是
ssh-keygen -t rsa

在这里插入图片描述
出现的结果类似上图,在win上的位置C:\Users\{username}.ssh,一般生成两个文件,带.pub是表示公钥,不带的是私钥,我们需要将这个文件的内容(或者说文件)放入到服务器中,这样即可实现
在这里插入图片描述

服务器主机

这里我以普通用户身份创建

生成服务器私钥公钥

$ ssh-keygen

Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa):	#按回车键
Created directory '/home/username/.ssh'.
Enter passphrase (empty for no passphrase):		#设置密码,我用的空密码
Enter same passphrase again:	#再次输入密码
Your identification has been saved in /home/username/.ssh/id_rsa.
Your public key has been saved in /home/username/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:*******************************************root@Ack
The key's randomart image is:
+---[RSA 2048]----+
|           .=+*+ |
|           +o++=.|
|          ***** +|
|         . = . ..|
|        S + o .  |
|         E = o = |
|          o o.X *|
|            +o %*|
|          .o.+oo@|
+----[SHA256]-----+

若是服务器上已经有公钥私钥文件夹,即/home/username/.ssh/有相应的文件,则忽略这部

这个公钥私钥并准备使用,只是这回生成一个和win上一样的两个文件,位于/home/username/.ssh/

在这里插入图片描述

将win上公钥放入到服务器上

直接将id_rsa.pub文件上传到服务器./hone/user/.ssh/文件夹下,然后修改其名为authorized_keys
若是authorized_keys文件已存在,则将id_rsa.pub内容追加到authorized_keys文件里
cat id_rsa.pub >> authorized_keys

这样win就可以直接访问服务器,无需密码

使用window Terminal快速访问

可以给目标服务器一个别名,这样更容易记住,而不需要记住其ip地址,那就是修改hosts文件,这个就自行百度吧

打开terminal的设置,然后直接将下面复制进去,

 {
    "name": "阿里云",
    "commandline": "ssh aliyun",
    "icon": "E:/pictures/aliyun.ico",
    "startingDirectory" : "%USERPROFILE%"
}

在这里插入图片描述

主要将图片格式改为.ico
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JSch是一个Java实现的SSH2协议客户端库,可以用于通过SSH连接到远程服务器,执行命令或传输文件等操作。 如果想要使用RSA登录远程服务器,需要先在本地生成RSA对,并将拷贝到远程服务器上。 具体步骤如下: 1. 生成RSA对 可以使用ssh-keygen命令在本地生成RSA对: ``` ssh-keygen -t rsa ``` 该命令会在当前用户的家目录下生成一个名为`.ssh`的目录,其中包含`id_rsa`和`id_rsa.pub`两个文件,分别是私。 2. 将上传到远程服务器 可以使用ssh-copy-id命令将上传到远程服务器上: ``` ssh-copy-id user@remote.server.com ``` 该命令会将本地的复制到远程服务器的`~/.ssh/authorized_keys`文件中,实现登录。 3. 使用JSch连接远程服务器 在Java代码中使用JSch连接远程服务器时,可以使用`Session.setConfig("PreferredAuthentications", "publickey")`设置使用认证,同时使用`JSch.addIdentity()`方法加载私文件,示例代码如下: ``` JSch jsch = new JSch(); jsch.addIdentity("/path/to/private_key"); Session session = jsch.getSession("username", "remote.server.com", 22); session.setConfig("PreferredAuthentications", "publickey"); session.connect(); ``` 其中`/path/to/private_key`为本地私文件的路径,`username`为远程服务器的用户名,`remote.server.com`为远程服务器的地址,`22`为远程服务器的SSH端口号。 使用以上代码连接远程服务器时,JSch会自动使用加载的私文件进行认证,实现登录。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值