ssh免密登陆详解

16 篇文章 0 订阅
5 篇文章 0 订阅

环境说明

  • 操作系统Centos7.6
  • ssh版本号7.4

应用场景

在日常运维不包括拥有堡垒机场景下,数量庞大的设备运维起来登陆设备是一件繁琐的事情,需要一对一查询资产表,通过ip地址、账号密码去登录设备进行巡检运维,设备量一多,造成了运维成本高,效率低,出错率高等问题。

配置说明

ssh-keygen -t rsa   ### -t 指定加密/解密算法类型
  • 参数说明
    -t 加/解密算法
    -b 秘钥长度,rsa默认秘钥长度的为 2048
    -C 注释,一般是填写用户名
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.93.130   ###将本地生成的公钥发送至192.168.93.130主机,本地保留私钥

本地主机进行ssh 192.168.93.130时可免密登陆。
(免密登陆谁,公钥就给谁,私钥可一对多公钥)

[root@centos ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:K5BdmhviEe8kqTIdISOtFhTpKZ40etbhLlbWPWE17/k root@centos
The key's randomart image is:
+---[RSA 2048]----+
| oo              |
|.o        o      |
|=.+ .   .. o     |
|oO...* +o   .    |
|*.+oBoBoS. . .   |
|o+o+=B.oo.  o    |
|ooo+. + ..   .   |
| oo .  .      E  |
| . .             |
+----[SHA256]-----+

[root@centos ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.93.130
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.93.130 (192.168.93.130)' can't be established.
ECDSA key fingerprint is SHA256:h1Bbt2WrAXtlb8f17tD8+rofNsraD8L+xL6gahxLt2E.
ECDSA key fingerprint is MD5:3b:7d:b4:3b:00:73:b0:d7:a3:13:c5:01:7b:9f:bd:fa.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.93.130's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@192.168.93.130'"
and check to make sure that only the key(s) you wanted were added.


[root@centos ~]# ssh root@192.168.93.130
Last login: Sat Jan  7 02:36:38 2023 from 192.168.93.1
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:76:57:2a brd ff:ff:ff:ff:ff:ff
    inet 192.168.93.130/24 brd 192.168.93.255 scope global noprefixroute dynamic ens33
       valid_lft 1693sec preferred_lft 1693sec
    inet6 fe80::b7a1:360e:d7fe:537d/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@localhost ~]# exit
登出
Connection to 192.168.93.130 closed.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在 VS Code 中使用 SSH 免密登录,你可以按照以下步骤进行设置: 1. 生成 SSH 密钥对:在终端中使用 `ssh-keygen` 命令生成 SSH 密钥对。你可以选择使用默认的密钥保存路径和文件名,或者自定义路径和文件名。 2. 将公钥添加到远程服务器:使用 `ssh-copy-id` 命令将生成的公钥添加到你希望无密码登录的远程服务器。例如,`ssh-copy-id user@hostname`,其中 `user` 是远程服务器上的用户名,`hostname` 是远程服务器的主机名或 IP 地址。 3. 在 VS Code 中安装 SSH 扩展:打开 VS Code,点击左侧的扩展图标,搜索并安装 "Remote - SSH" 扩展。 4. 连接到远程服务器:点击左下角的 "Remote Explorer" 图标,选择 "SSH Targets",然后点击 "+" 添加一个新的 SSH 目标。 5. 配置 SSH 目标:在弹出的输入框中,输入格式为 `[user@]hostname[:port]` 的目标,其中 `user` 是远程服务器上的用户名,`hostname` 是远程服务器的主机名或 IP 地址,`port` 是可选的远程服务器 SSH 端口号。例如,`user@hostname` 或 `user@hostname:port`。然后,选择之前生成的私钥文件。 6. 连接到远程服务器:点击刚刚创建的 SSH 目标,VS Code 会自动连接到远程服务器。你可能需要输入远程服务器的密码一次,之后就可以无密码登录了。 这样,你就可以在 VS Code 中无需每次输入密码就能通过 SSH 连接到远程服务器了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kate zhu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值