ssh

ssh

ssh免密登录

1. SSH密钥的组成

  • 公钥(Public Key):可以安全地分享给任何人。它用于加密数据,确保只有拥有相应私钥的人才能解密。
  • 私钥(Private Key):必须保密,存放在本地。它用于解密由公钥加密的数据,并进行身份验证。

2. 生成SSH密钥对

可以通过以下命令生成SSH密钥对:

ssh-keygen
执行后,系统会提示你选择保存密钥的路径和输入密码短语。默认路径是~/.ssh/id_rsa(私钥)和~/.ssh/id_rsa.pub(公钥)。

[root@localhost ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 密钥保存位置
Created directory '/root/.ssh'.
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:kYeILvcNGybcSzYhxvuKKEOHpUDNhHwnhtEyVidIO70 root@localhost.localdomain
The key's randomart image is:
+---[RSA 3072]----+
|oo@+ .           |
| XoOoo . o       |
|oo=.B o + .      |
|. .=.+ . o       |
|. =E* O S        |
| + + B B         |
|. .   = .        |
|o. . .           |
|o.. .            |
+----[SHA256]-----+



密钥存放位置/root/.ssh
[root@localhost .ssh]# ls
id_rsa  id_rsa.pub

使用ssh-copy-id命令将公钥复制到目标服务器的~/.ssh/authorized_keys文件中。
ssh-copy-id username@target_server

[root@localhost .ssh]# ssh-copy-id root@192.168.5.101
[root@web01 .ssh]# cat authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC4G8HKl9N2opXMUxihztksB1r/cUDW0PBJBerzA3HE6x+YoOSNUdTIGMOuLPCjUkTvU6EgrYKv6FpZPig81xEulwC0pRI/ThpnD+N/zGmTFUuwpCY2hNam2y8syIXVgl6cqTHRhirZMBw1hdpR0YUskjdKb1ElrvDNHyg+Qi4zofaKVNMAeC6cG4H7xyjvaMatkhOcUJQIlTroVXzbd3bq+HvpNqyQJaDVP9iJ4eyF08rALqK8vj5Zy5LJvavxA490AZBUTnFQomeQPRodf0QOAkifMadXwli4DlwyhpcFs61ix+wBJNbVlG3sgSYEnlZgJ49TPGj4IPaZCrTPJ9txfkYPIVymcY0gvrSP8RCGJOuNIAlPNRqpqO1sVwRqFTrAj/oT3hVmmORjeinjrUoopTSpgJQjZTZjmecL8098OiKZvu5goUSs2aj+r4mOUglHq4ty4KCV+PeMJyVSgd+JMVmtUewZjJ6gXyESYi0CQ52jhtCnuHwXItw2A4rRMAU= root@localhost.localdomain


ssh客户端和服务端

[root@localhost ssh]# ls
moduli      ssh_config.d  ssh_host_ecdsa_key      ssh_host_ed25519_key      ssh_host_rsa_key
ssh_config  sshd_config   ssh_host_ecdsa_key.pub  ssh_host_ed25519_key.pub  ssh_host_rsa_key.pub

1. moduli
描述: 这个文件包含了DH(Diffie-Hellman)密钥交换协议中使用的质数和生成元的列表。用于加密通信以确保安全。
用途: 在SSH连接中,特别是在生成共享密钥时,提供安全的参数。
2. ssh_config
描述: 这是SSH客户端的全局配置文件。
用途: 你可以在此文件中设置SSH客户端的默认行为,例如主机别名、用户名、端口等。
3. sshd_config
描述: 这是SSH服务器的配置文件。
用途: 控制SSH服务器的行为,如允许的身份验证方式、端口号、最大连接数等。需要管理员权限来修改。
4. ssh_host_ecdsa_key
描述: 这是ECDSA(Elliptic Curve Digital Signature Algorithm)算法生成的SSH主机密钥的私钥。
用途: 用于SSH服务器的身份验证,确保连接的服务器是合法的。
5. ssh_host_ecdsa_key.pub
描述: 对应于ssh_host_ecdsa_key的公钥。
用途: 服务器在建立SSH连接时向客户端提供的密钥,用于验证服务器身份。
6. ssh_host_ed25519_key
描述: 这是ED25519算法生成的SSH主机密钥的私钥。
用途: 同样用于SSH服务器的身份验证,通常更安全且速度更快。
7. ssh_host_ed25519_key.pub
描述: 对应于ssh_host_ed25519_key的公钥。
用途: 用于在建立连接时向客户端提供的密钥。
8. ssh_host_rsa_key
描述: 这是RSA算法生成的SSH主机密钥的私钥。
用途: 用于SSH服务器的身份验证,确保连接的服务器是合法的。
9. ssh_host_rsa_key.pub
描述: 对应于ssh_host_rsa_key的公钥。
用途: 服务器在建立SSH连接时向客户端提供的密钥,用于验证服务器身份。

vim /etc/ssh/ssh_config
 
#   StrictHostKeyChecking no 登录时不需要验证
posted @   pro111  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
点击右上角即可分享
微信分享提示