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
在这里插入图片描述

### SSH免密登录Linux服务器的配置方法 为了实现从本地机器通过SSH免密登录到Linux服务器,可以按照以下方式完成配置: #### 1. 安装并启用SSH服务 确保目标Linux服务器上已安装并启用了SSH服务。可以通过以下命令检查是否已经安装: ```bash sudo systemctl status sshd ``` 如果没有安装,则执行以下命令进行安装和启动: ```bash sudo apt update && sudo apt install openssh-server -y sudo systemctl start sshd sudo systemctl enable sshd ``` #### 2. 在客户端生成SSH密钥对 在Windows或Linux客户端生成一对新的SSH密钥(私钥和公钥)。运行以下命令来创建RSA类型的密钥对[^3]: ```bash ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa ``` 此过程会提示指定保存位置以及密码短语(可选),默认情况下无需输入任何内容即可继续。 #### 3. 将公钥复制至远程主机 利用`ssh-copy-id`工具把用户的公钥传输给远端服务器上的对应账户: ```bash ssh-copy-id user@remote_host ``` 这里替换"user"为目标用户名,"remote_host"代表要连接的目标IP地址或者域名. 注意: 如果遇到错误消息类似于".ssh/authorized_keys: No such file or directory"[^2], 可能是因为缺少`.ssh`目录结构, 所以先手动建立它: ```bash mkdir -p ~/.ssh && chmod 700 ~/.ssh touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys ``` #### 4. 调整权限 (必要时) 某些情况可能需要调整文件夹及其内部项的所有者与组归属关系以便于正常工作[^4]: ```bash sudo chown -R $USER:$USER ~/.ssh/ ``` #### 5. 测试无密码访问功能 尝试不带参数直接SSH过去看能否成功登入而不需要再次提供口令: ```bash ssh user@remote_host ``` 对于VSCode用户来说,在完成了上述基础准备工作之后还需要额外做几件事才能顺利开启远程开发模式下的自动认证机制[^1]: - **安装Remote Development扩展包**: 包含多个子组件用于支持不同场景需求. - **编辑settings.json添加如下字段**: ```json { "terminal.integrated.shell.linux": "/bin/bash", ... } ``` 最后记得重启软件使更改生效后再试一次! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值