Linux下ssh免密钥登录

本文介绍如何在服务器A上生成SSH密钥,并将其复制到服务器B,实现从A到B的免密钥登录。首先在A上用ssh-keygen生成密钥对,然后用ssh-copy-id将公钥发送到B。完成配置后即可实现免密登录并执行运维任务。

对于使用SHELL脚本进行批量服务器登录管理时,我们期望通过脚本能免密钥登录服务器,从而进行一些运维工作。

场景:

服务器A:192.168.1.132

服务器B:192.168.1.133

我们想通过服务器A免密钥ssh登录服务器B

步骤如下:

 

1、在服务器A上执行ssh-keygen生成公钥和密钥
ssh-keygen 回车三次

此时在/root/.ssh目录下会生成密钥id_rsa和公钥id_rsa.pub
2、将公钥id_rsa.pub拷贝至服务器B
ssh-copy-id  -i  /root/.ssh/id_rsa.pub  192.168.1.133
第一次拷贝公钥需要得到远程机器的授权允许(输入对方的密码)
3、远程登录就不需要输入密码

 [root@centos.ssh]# ssh -l root 192.168.1.133 "df -h"

Filesystem      Size Used Avail Use% Mounted on

/dev/sda2        15G 4.3G   10G  30% /

tmpfs           491M     0 491M   0% /dev/shm

/dev/sda1       190M  30M  150M  17% /boot

/dev/sda3       3.9G 8.1M  3.7G   1% /home

4、公钥拷贝至服务B的路径和名称是

[root@centos.ssh]# ll /root/.ssh/

-rw-------1 root root  393 11月 18 17:18authorized_keys

5、配置多台机器都免密钥,将公钥的id_rsa.pub内容追加至远程机器的authorized_keys文件中

 

### 配置VSCode通过SSH免密钥连接至远程服务器 为了实现VSCode通过SSH免密钥连接到远程服务器,需完成几个关键步骤。在Windows环境中,确保已安装OpenSSH[^2];对于Mac系统,则主要关注于VSCode插件配置以及SSH密钥管理。 #### 安装并配置Remote-SSH插件 在Visual Studio Code中安装名为“Remote - SSH”的扩展插件后,左侧状态栏会出现一个绿色图标表示该插件已经准备好使用。此操作适用于任何操作系统平台上的VSCode版本。 #### 创建或获取现有的SSH私钥与公钥对 如果尚未拥有SSH密钥对,在本地机器(无论是Windows还是Mac)打开命令提示符或者终端执行如下命令来生成一对新的RSA类型的SSH密钥: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 上述命令将会引导用户指定保存位置,默认情况下会在`~/.ssh/id_rsa`及其对应的`.pub`文件内存储私钥和公钥[^4]。 #### 将公钥添加到远程主机 接着要把新生成的公钥(`id_rsa.pub`)内容追加进目标Linux服务器上的`~/.ssh/authorized_keys`文件之中。可以通过下面的方式快速完成这一步骤: ```bash cat ~/.ssh/id_rsa.pub | ssh user@hostname 'umask 0077; mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys' ``` 这里假设读者已经在本地计算机上设置了正确的SSH代理以便能够顺利地向远端发送指令。 #### 编辑VSCode的SSH Configurations 最后回到VSCode内部调整其用于描述各个远程节点信息的配置文档——即位于用户主目录下的`.ssh/config`文件。按照以下模板填写相应字段以匹配个人实际情况: ```plaintext Host myserveralias HostName your.server.ip.or.domain.name User username_on_remote_machine IdentityFile ~/.ssh/id_rsa ``` 注意替换其中占位符部分为实际值,并且确认路径指向的是之前创建好的私钥文件所在之处[^1]。 一旦完成了以上全部准备工作,就可以尝试利用VSCode内置的功能去建立同那台特定命名过的远程主机之间的安全连接了。此时应该不再需要每次输入密码就能顺利完成认证流程[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值